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 aRe-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 UnitSet 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 sModify 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 aGet a value which depends on the current state.
#get Source
get :: forall s m. MonadState s m => m sGet 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 aRe-exports from Control.Monad.Writer.Class
Re-exports from Control.Parallel.Class
#sequential Source
sequential :: forall f m. Parallel f m => f ~> mRe-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 aRe-exports from React.Basic.Hooks
#JSX Source
data JSX :: TypeRepresents rendered React VDOM (the result of calling React.createElement
in JavaScript).
JSX is a Monoid:
append- Merge two
JSXnodes usingReact.Fragment.
- Merge two
mempty- The
emptynode; 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 JSXBuild 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 aThe Halo evaluation monad. It lifts the HaloF algebra into a free monad.
propsare the component propsstateis the component stateactionis the set of actions that the component handlesmis the monad used during evaluationais 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 aThe Halo parallel evaluation applicative. It lifts HaloM into a free applicative.
propsare the component propsstateis the component stateactionis the set of actions that the component handlesmis the monad used during evaluationais the result type
Instances
#unsubscribe Source
unsubscribe :: forall props state action m. SubscriptionId -> HaloM props state action m UnitCancels the event subscription belonging to the SubscriptionId.
#subscribe' Source
subscribe' :: forall props state action m. (SubscriptionId -> Event action) -> HaloM props state action m SubscriptionIdSame 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 SubscriptionIdSubscribe 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 ForkIdStart 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 mThe empty EvalSpec.
Re-exports from React.Halo.Internal.Types
#Lifecycle Source
data Lifecycle props actionThe Halo lifecycle events.
Initializecontains the initial props. It occurs when the component mounts, and only once per component.Updatecontains the previous and new props. It occurs when the component re-renders and the props have changes.Actioncontains the dispatched action. It occurs each time an action is dispatched to be eval'd, up until theFinalizeeventFinalizeoccurs when the component unmounts.
Constructors
Initialize propsUpdate props propsAction actionFinalize