Module

Halogen.Aff.Driver.State

Package
purescript-halogen
Repository
slamdata/purescript-halogen

#LifecycleHandlers Source

type LifecycleHandlers = { finalizers :: List (Aff Unit), initializers :: List (Aff Unit) }

#DriverState Source

newtype DriverState h r s f z g p i o

The type used to track a driver's persistent state.

  • h is the type of value the components produce for rendering.
  • r is the type for the render state for the driver.
  • s is the component state type.
  • f is the projected component query algebra - used for multi-child-type components, by projecting to z we can avoid the need to remap the entire component.
  • z is the unprojected component query algebra.
  • g is the component child query algebra.
  • p is the type of slots for the component.
  • i is the invput value type.
  • o is the type of output messages from the component.
  • eff is theect row for the target Aff

Constructors

#DriverStateRec Source

type DriverStateRec h r s f z g p i o = { children :: Map (OrdBox p) (Ref (DriverStateX h r g)), childrenIn :: Ref (Map (OrdBox p) (Ref (DriverStateX h r g))), childrenOut :: Ref (Map (OrdBox p) (Ref (DriverStateX h r g))), component :: Component' h s z g p i o Aff, fresh :: Ref Int, handler :: o -> Aff Unit, lifecycleHandlers :: Ref LifecycleHandlers, pendingHandlers :: Ref (Maybe (List (Aff Unit))), pendingOuts :: Ref (Maybe (List (Aff Unit))), pendingQueries :: Ref (Maybe (List (Aff Unit))), prjQuery :: forall x. f x -> Maybe (z x), refs :: Map String Element, rendering :: Maybe (r s z g p o), selfRef :: Ref (DriverState h r s f z g p i o), state :: s, subscriptions :: Ref (Maybe (Map Int (Aff Unit))) }

#DriverStateX Source

data DriverStateX (h :: Type -> Type -> Type) (r :: Type -> (Type -> Type) -> (Type -> Type) -> Type -> Type -> Type) (f :: Type -> Type)

A version of DriverState with the aspects relating to child components existentially hidden.

#unDriverStateX Source

unDriverStateX :: forall x f r h. (forall o i p g z s. DriverStateRec h r s f z g p i o -> x) -> DriverStateX h r f -> x

#mkDriverStateXRef Source

mkDriverStateXRef :: forall o i p g z f s r h. Ref (DriverState h r s f z g p i o) -> Ref (DriverStateX h r f)

#RenderStateX Source

data RenderStateX (r :: Type -> (Type -> Type) -> (Type -> Type) -> Type -> Type -> Type)

A wrapper of r from DriverState with the aspects relating to child components existentially hidden.

#renderStateX Source

renderStateX :: forall f r h m. Functor m => (forall o p g s z. Maybe (r s z g p o) -> m (r s z g p o)) -> DriverStateX h r f -> m (RenderStateX r)

#renderStateX_ Source

renderStateX_ :: forall f r h m. Applicative m => (forall o p g s z. r s z g p o -> m Unit) -> DriverStateX h r f -> m Unit

#unRenderStateX Source

unRenderStateX :: forall x r. (forall o p g s z. r s z g p o -> x) -> RenderStateX r -> x

#initDriverState Source

initDriverState :: forall o i p g z f s r h. Component' h s z g p i o Aff -> i -> (o -> Aff Unit) -> (forall x. f x -> Maybe (z x)) -> Ref LifecycleHandlers -> Effect (Ref (DriverStateX h r f))