Module

Halogen.Aff.Driver.State

Package
purescript-halogen
Repository
slamdata/purescript-halogen

#LifecycleHandlers Source

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

#DriverState Source

newtype DriverState h r s f z g p i o eff

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 the effect row for the target Aff

Constructors

#DriverStateRec Source

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

#DriverStateX Source

data DriverStateX (h :: Type -> Type -> Type) (r :: Type -> (Type -> Type) -> (Type -> Type) -> Type -> Type -> Row Effect -> Type) (f :: Type -> Type) (eff :: Row Effect)

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

#unDriverStateX Source

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

#mkDriverStateXRef Source

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

#RenderStateX Source

data RenderStateX (r :: Type -> (Type -> Type) -> (Type -> Type) -> Type -> Type -> Row Effect -> Type) (eff :: Row Effect)

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

#renderStateX Source

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

#renderStateX_ Source

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

#unRenderStateX Source

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

#initDriverState Source

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