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 b
A 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
.
- Modules
- Concur.
Core - Concur.
Core. DevTools - Concur.
Core. Discharge - Concur.
Core. FRP - Concur.
Core. Gen - Concur.
Core. IsWidget - Concur.
Core. LiftWidget - Concur.
Core. Patterns - Concur.
Core. Types - Concur.
React - Concur.
React. DOM - Concur.
React. Props - Concur.
React. Run - Concur.
React. SVG - Concur.
React. Widgets - Control.
Cofree - Control.
MultiAlternative - Control.
ShiftMap