Module
Concur.Core.Patterns
- Package
- purescript-concur-react
- Repository
- ajnsit/purescript-concur
#remoteWidget Source
remoteWidget :: forall void a n m. MonadEffect n => MonadAff m => MonadEffect m => Plus m => m a -> n (Tuple (m a) (m void))Separate the effect of the widget from its result
#forkAction Source
forkAction :: forall b a m. MonadEffect m => MonadAff m => Plus m => m a -> (m a -> m b) -> m bA common pattern - running a long running action and keeping the GUI responsive Because the action can't be restarted on every gui event, we must fork it off in the beginning
#forkActionState Source
forkActionState :: forall s m. Plus m => MonadAff m => m (s -> s) -> (s -> m s) -> (s -> m s)Another common variant on the forkAction pattern.
The action m (s->s) may take a while (should not be restarted) and returns a state modification function
The gui s -> m s takes in the current state, and modifies it on events
Note that forkActionState axn has the shape (s -> m s) -> (s -> m s). So it can be "stacked" to fork multiple actions.
e.g. forkActionState axn1 $ forkActionState axn2 $ forkActionState axn3 $ render initialState.