Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
- data ReactorEnv = ReactorEnv {
- reactIdEnv :: MVar Int
- reactorBackgroundEnv :: TQueue (IO (IO ()))
- mkReactorEnvIO :: IO ReactorEnv
- startApp :: (MonadIO m, MonadReader r m, Has ReactorEnv r, Typeable s, AsReactor cmd, AsFacet (IO cmd) cmd) => (cmd -> m ()) -> Widget cmd s s () -> s -> JSRep -> m ()
- reactorBackgroundWork :: TQueue (IO (IO ())) -> IO ()
- execReactorCmd :: (MonadUnliftIO m, MonadReader r m, AsReactor cmd, Has ReactorEnv r) => (cmd -> m ()) -> ReactorCmd cmd -> m ()
- execMkReactId :: (MonadIO m, Has ReactorEnv r, MonadReader r m) => JSString -> m ReactId
- execSetRender :: MonadIO m => Subject s -> Window s () -> m ()
- execMkSubject :: (MonadIO m, AsReactor cmd, Has ReactorEnv r, MonadReader r m) => (cmd -> m ()) -> Widget cmd s s () -> s -> m (Subject s)
- execBookSubjectCleanup :: (MonadIO m, MonadReader r m, Has ReactorEnv r) => Subject s -> m ()
- execGetModel :: MonadIO m => Subject s -> m s
- execGetElementalRef :: (MonadUnliftIO m, MonadReader r m, Has ReactorEnv r) => (cmd -> m ()) -> Subject s -> ReactId -> (EventTarget -> cmd) -> m ()
- execRerender :: (MonadIO m, MonadReader r m, Has ReactorEnv r) => Subject s -> m ()
- execTickModel :: (MonadIO m, MonadReader r m, Has ReactorEnv r) => Subject s -> ModelState s cmd -> m cmd
- execRegisterDOMListener :: (NFData a, MonadUnliftIO m, Has ReactorEnv r, MonadReader r m) => (cmd -> m ()) -> Subject s -> JSRep -> JSString -> (JSRep -> MaybeT IO a) -> (a -> cmd) -> m ()
- execRegisterReactListener :: (NFData a, MonadUnliftIO m) => (cmd -> m ()) -> Subject s -> ReactId -> JSString -> (JSRep -> MaybeT IO a) -> (a -> cmd) -> m ()
- execRegisterMountedListener :: MonadUnliftIO m => (cmd -> m ()) -> Subject s -> cmd -> m ()
- execRegisterRenderedListener :: MonadUnliftIO m => (cmd -> m ()) -> Subject s -> cmd -> m ()
- execRegisterNextRenderedListener :: MonadUnliftIO m => (cmd -> m ()) -> Subject s -> cmd -> m ()
- execRegisterTickedListener :: MonadUnliftIO m => (cmd -> m ()) -> Subject s -> cmd -> m ()
Documentation
data ReactorEnv Source #
ReactorEnv | |
|
startApp :: (MonadIO m, MonadReader r m, Has ReactorEnv r, Typeable s, AsReactor cmd, AsFacet (IO cmd) cmd) => (cmd -> m ()) -> Widget cmd s s () -> s -> JSRep -> m () Source #
An example of starting an app using the glazier-react framework
execReactorCmd :: (MonadUnliftIO m, MonadReader r m, AsReactor cmd, Has ReactorEnv r) => (cmd -> m ()) -> ReactorCmd cmd -> m () Source #
execMkReactId :: (MonadIO m, Has ReactorEnv r, MonadReader r m) => JSString -> m ReactId Source #
execMkSubject :: (MonadIO m, AsReactor cmd, Has ReactorEnv r, MonadReader r m) => (cmd -> m ()) -> Widget cmd s s () -> s -> m (Subject s) Source #
execBookSubjectCleanup :: (MonadIO m, MonadReader r m, Has ReactorEnv r) => Subject s -> m () Source #
execGetModel :: MonadIO m => Subject s -> m s Source #
execGetElementalRef :: (MonadUnliftIO m, MonadReader r m, Has ReactorEnv r) => (cmd -> m ()) -> Subject s -> ReactId -> (EventTarget -> cmd) -> m () Source #
execRerender :: (MonadIO m, MonadReader r m, Has ReactorEnv r) => Subject s -> m () Source #
execTickModel :: (MonadIO m, MonadReader r m, Has ReactorEnv r) => Subject s -> ModelState s cmd -> m cmd Source #
No need to run in a separate thread because it should never block for a significant amount of time.
Update the scene MVar
with the given action. Also triggers a rerender.
execRegisterDOMListener :: (NFData a, MonadUnliftIO m, Has ReactorEnv r, MonadReader r m) => (cmd -> m ()) -> Subject s -> JSRep -> JSString -> (JSRep -> MaybeT IO a) -> (a -> cmd) -> m () Source #
execRegisterReactListener :: (NFData a, MonadUnliftIO m) => (cmd -> m ()) -> Subject s -> ReactId -> JSString -> (JSRep -> MaybeT IO a) -> (a -> cmd) -> m () Source #
execRegisterMountedListener :: MonadUnliftIO m => (cmd -> m ()) -> Subject s -> cmd -> m () Source #
execRegisterRenderedListener :: MonadUnliftIO m => (cmd -> m ()) -> Subject s -> cmd -> m () Source #
execRegisterNextRenderedListener :: MonadUnliftIO m => (cmd -> m ()) -> Subject s -> cmd -> m () Source #
execRegisterTickedListener :: MonadUnliftIO m => (cmd -> m ()) -> Subject s -> cmd -> m () Source #