Halogen.Component
- Package
- purescript-halogen
- Repository
- slamdata/purescript-halogen
#Component Source
data Component (h :: Type -> Type -> Type) (f :: Type -> Type) i o (m :: Type -> Type)
The "public" type for a component, with details of the component internals existentially hidden.
h
is the type that will be rendered by the component, usuallyHTML
f
is the query algebrai
is the input value type that will be mapped to anf
whenever the parent of this component renderso
is the type for the component's output messagesm
is the monad used for non-component-state effects
#mkComponent Source
mkComponent :: forall m o i p g f s h. Component' h s f g p i o m -> Component h f i o m
Makes a Component
from a Component'
, existentially hiding details about
the component's state and potential children.
#unComponent Source
unComponent :: forall r m o i f h. (forall p g s. Component' h s f g p i o m -> r) -> Component h f i o m -> r
Exposes the inner details of a component to a function to produce a new result. The inner details will not be allowed to be revealed in the result of the function - the compiler will complain about an escaped skolem.
#Component' Source
type Component' h s f g p i o m = { eval :: f ~> (HalogenM s f g p o m), finalizer :: Maybe (f Unit), initialState :: i -> s, initializer :: Maybe (f Unit), mkOrdBox :: p -> OrdBox p, receiver :: i -> Maybe (f Unit), render :: s -> h (ComponentSlot h g m p (f Unit)) (f Unit) }
The "private" type for a component.
h
is the type that will be rendered by the component, usuallyHTML
s
is the component's statef
is the query algebra for the component itselfg
is the query algebra for child componentsp
is the slot type for addressing child componentsi
is the input value type that will be mapped to anf
whenever the parent of this component renderso
is the type for the component's output messagesm
is the monad used for non-component-state effects
#ComponentSpec Source
type ComponentSpec h s f i o m = { eval :: f ~> (ComponentDSL s f o m), initialState :: i -> s, receiver :: i -> Maybe (f Unit), render :: s -> h Void (f Unit) }
A spec for a component with no possible children.
h
is the type that will be rendered by the component, usuallyHTML
s
is the component's statef
is the query algebrai
is the input value type that will be mapped to anf
whenever the parent of this component renderso
is the type for the component's output messagesm
is the monad used for non-component-state effects
#ComponentHTML Source
type ComponentHTML f = HTML Void (f Unit)
A convenience synonym for the output type of a render
function, for a
childless component that renders HTML.
#ComponentDSL Source
type ComponentDSL s f = HalogenM s f (Const Void) Void
A synonym for HalogenM
with some type parameters populated that are not
relevant for childless components.
#component Source
component :: forall m o i f s h. Bifunctor h => ComponentSpec h s f i o m -> Component h f i o m
Builds a component with no possible children.
#LifecycleComponentSpec Source
type LifecycleComponentSpec h s f i o m = { eval :: f ~> (ComponentDSL s f o m), finalizer :: Maybe (f Unit), initialState :: i -> s, initializer :: Maybe (f Unit), receiver :: i -> Maybe (f Unit), render :: s -> h Void (f Unit) }
A spec for a component with no possible children, including lifecycle inputs.
h
is the type that will be rendered by the component, usuallyHTML
s
is the component's statef
is the query algebrai
is the input value type that will be mapped to anf
whenever the parent of this component renderso
is the type for the component's output messagesm
is the monad used for non-component-state effects
#lifecycleComponent Source
lifecycleComponent :: forall m o i f s h. Bifunctor h => LifecycleComponentSpec h s f i o m -> Component h f i o m
Builds a component with lifecycle inputs and no possible children.
#ParentComponentSpec Source
type ParentComponentSpec h s f g p i o m = { eval :: f ~> (HalogenM s f g p o m), initialState :: i -> s, receiver :: i -> Maybe (f Unit), render :: s -> h (ComponentSlot h g m p (f Unit)) (f Unit) }
A spec for a component.
h
is the type that will be rendered by the component, usuallyHTML
s
is the component's statef
is the query algebra for the component itselfg
is the query algebra for child componentsp
is the slot type for addressing child componentso
is the type for the component's output messagesm
is the monad used for non-component-state effects
#ParentHTML Source
type ParentHTML f g p m = HTML (ComponentSlot HTML g m p (f Unit)) (f Unit)
A convenience synonym for the output type of a render
function, for a
parent component that renders HTML.
#parentComponent Source
parentComponent :: forall m o i p g f s h. Ord p => ParentComponentSpec h s f g p i o m -> Component h f i o m
Builds a component that allows for children.
#ParentLifecycleComponentSpec Source
type ParentLifecycleComponentSpec h s f g p i o m = { eval :: f ~> (HalogenM s f g p o m), finalizer :: Maybe (f Unit), initialState :: i -> s, initializer :: Maybe (f Unit), receiver :: i -> Maybe (f Unit), render :: s -> h (ComponentSlot h g m p (f Unit)) (f Unit) }
A spec for a parent component, including lifecycle inputs.
h
is the type that will be rendered by the component, usuallyHTML
s
is the component's statef
is the query algebra for the component itselfg
is the query algebra for child componentsp
is the slot type for addressing child componentso
is the type for the component's output messagesm
is the monad used for non-component-state effects
#lifecycleParentComponent Source
lifecycleParentComponent :: forall m o i p g f s h. Ord p => ParentLifecycleComponentSpec h s f g p i o m -> Component h f i o m
Builds a component with lifecycle inputs that allows for children.
#ComponentSlot Source
data ComponentSlot (h :: Type -> Type -> Type) (g :: Type -> Type) (m :: Type -> Type) p q
Instances
Bifunctor (ComponentSlot h g m)
Functor (ComponentSlot h g m p)
#mkComponentSlot Source
mkComponentSlot :: forall o q j p m z g h. p -> (Component h z j o m) -> j -> (j -> Maybe (g Unit)) -> (o -> Maybe q) -> (forall x. g x -> Maybe (z x)) -> ComponentSlot h g m p q
#unComponentSlot Source
unComponentSlot :: forall r q p m g h. (forall o j z. p -> Component h z j o m -> j -> (j -> Maybe (g Unit)) -> (o -> Maybe q) -> (forall x. g x -> Maybe (z x)) -> r) -> ComponentSlot h g m p q -> r
#hoistSlot Source
hoistSlot :: forall q p m' m g h. Bifunctor h => Functor m' => (m ~> m') -> ComponentSlot h g m p q -> ComponentSlot h g m' p q
- Modules
- Halogen
- Halogen.
Aff - Halogen.
Aff. Driver - Halogen.
Aff. Driver. Eval - Halogen.
Aff. Driver. State - Halogen.
Aff. Effects - Halogen.
Aff. Util - Halogen.
Component - Halogen.
Component. ChildPath - Halogen.
Component. Profunctor - Halogen.
Data. OrdBox - Halogen.
Data. Prism - Halogen.
HTML - Halogen.
HTML. Core - Halogen.
HTML. Elements - Halogen.
HTML. Elements. Keyed - Halogen.
HTML. Events - Halogen.
HTML. Properties - Halogen.
HTML. Properties. ARIA - Halogen.
Query - Halogen.
Query. EventSource - Halogen.
Query. ForkF - Halogen.
Query. HalogenM - Halogen.
Query. InputF - Halogen.
VDom. Driver