React.Halo
- Package
- purescript-react-halo
- Repository
- robertdp/purescript-react-halo
Re-exports from Control.Monad.Error.Class
#throwError Source
throwError :: forall e m a. MonadThrow e m => e -> m a
Re-exports from Control.Monad.Reader.Class
Re-exports from Control.Monad.State.Class
#state Source
state :: forall s m a. MonadState s m => (s -> (Tuple a s)) -> m a
#put Source
put :: forall s m. MonadState s m => s -> m Unit
Set the state.
#modify_ Source
modify_ :: forall m s. MonadState s m => (s -> s) -> m Unit
#modify Source
modify :: forall m s. MonadState s m => (s -> s) -> m s
Modify the state by applying a function to the current state. The returned value is the new state value.
#gets Source
gets :: forall a m s. MonadState s m => (s -> a) -> m a
Get a value which depends on the current state.
#get Source
get :: forall s m. MonadState s m => m s
Get the current state.
Re-exports from Control.Monad.Trans.Class
#lift Source
lift :: forall t a m. MonadTrans t => Monad m => m a -> t m a
Re-exports from Control.Monad.Writer.Class
Re-exports from Control.Parallel.Class
#sequential Source
sequential :: forall f m. Parallel f m => f ~> m
Re-exports from Data.Tuple.Nested
#(/\) Source
Operator alias for Data.Tuple.Tuple (right-associative / precedence 6)
Shorthand for constructing n-tuples as nested pairs.
a /\ b /\ c /\ d /\ unit
becomes Tuple a (Tuple b (Tuple c (Tuple d unit)))
#type (/\) Source
Operator alias for Data.Tuple.Tuple (right-associative / precedence 6)
Shorthand for constructing n-tuple types as nested pairs.
forall a b c d. a /\ b /\ c /\ d /\ Unit
becomes
forall a b c d. Tuple a (Tuple b (Tuple c (Tuple d Unit)))
Re-exports from Effect.Aff.Class
Re-exports from Effect.Class
#liftEffect Source
liftEffect :: forall m a. MonadEffect m => Effect a -> m a
Re-exports from React.Basic.Hooks
#JSX Source
data JSX :: Type
Represents rendered React VDOM (the result of calling React.createElement
in JavaScript).
JSX
is a Monoid
:
append
- Merge two
JSX
nodes usingReact.Fragment
.
- Merge two
mempty
- The
empty
node; renders nothing.
- The
Hint: Many useful utility functions already exist for Monoids. For example,
guard
can be used to conditionally render a subtree of components.
Instances
Re-exports from React.Halo.Component
#component_ Source
component_ :: forall action state. String -> ComponentSpec Unit state action Aff -> Effect JSX
Build a propless component by providing a name and Halo component spec.
Re-exports from React.Halo.Internal.Control
#HaloM Source
newtype HaloM props state action m a
The Halo evaluation monad. It lifts the HaloF
algebra into a free monad.
props
are the component propsstate
is the component stateaction
is the set of actions that the component handlesm
is the monad used during evaluationa
is the result type
Instances
Functor (HaloM props state action m)
Apply (HaloM props state action m)
Applicative (HaloM props state action m)
Bind (HaloM props state action m)
Monad (HaloM props state action m)
(Semigroup a) => Semigroup (HaloM props state action m a)
(Monoid a) => Monoid (HaloM props state action m a)
MonadTrans (HaloM props state action)
(MonadEffect m) => MonadEffect (HaloM props state action m)
(MonadAff m) => MonadAff (HaloM props state action m)
MonadState state (HaloM props state action m)
MonadRec (HaloM props state action m)
(MonadAsk r m) => MonadAsk r (HaloM props state action m)
(MonadTell w m) => MonadTell w (HaloM props state action m)
(MonadThrow e m) => MonadThrow e (HaloM props state action m)
Parallel (HaloAp props state action m) (HaloM props state action m)
#HaloAp Source
newtype HaloAp props state action m a
The Halo parallel evaluation applicative. It lifts HaloM
into a free applicative.
props
are the component propsstate
is the component stateaction
is the set of actions that the component handlesm
is the monad used during evaluationa
is the result type
Instances
#unsubscribe Source
unsubscribe :: forall props state action m. SubscriptionId -> HaloM props state action m Unit
Cancels the event subscription belonging to the SubscriptionId
.
#subscribe' Source
subscribe' :: forall props state action m. (SubscriptionId -> Event action) -> HaloM props state action m SubscriptionId
Same as subscribe
but the event-producing logic is also passed the SuscriptionId
. This is useful when events
need to unsubscribe themselves.
#subscribe Source
subscribe :: forall m action state props. Event action -> HaloM props state action m SubscriptionId
Subscribe to new actions from an Event
. Subscriptions will be automatically cancelled when the component
unmounts.
Returns a SubscriptionId
which can be used with unsubscribe
to manually cancel a subscription.
#fork Source
fork :: forall props state action m. HaloM props state action m Unit -> HaloM props state action m ForkId
Start a HaloM
process running independantly from the current "thread". Forks are tracked automatically and
killed when the Finalize
event occurs (when the component unmounts). New forks can still be created during the
Finalize
event, but once evaluation ends there will be no way of killing them.
Returns a ForkId
for the new process.
Re-exports from React.Halo.Internal.Eval
#EvalSpec Source
type EvalSpec props state action m = { onAction :: action -> HaloM props state action m Unit, onFinalize :: Maybe action, onInitialize :: props -> Maybe action, onUpdate :: props -> props -> Maybe action }
A simpler interface for building the components eval function. The main lifecycle events map directly into
actions, so only the action handling logic needs to be written using HaloM
.
#defaultEval Source
defaultEval :: forall m state action props. EvalSpec props state action m
The empty EvalSpec
.
Re-exports from React.Halo.Internal.Types
#Lifecycle Source
data Lifecycle props action
The Halo lifecycle events.
Initialize
contains the initial props. It occurs when the component mounts, and only once per component.Update
contains the previous and new props. It occurs when the component re-renders and the props have changes.Action
contains the dispatched action. It occurs each time an action is dispatched to be eval'd, up until theFinalize
eventFinalize
occurs when the component unmounts.
Constructors
Initialize props
Update props props
Action action
Finalize