glazier-react-0.4.0.0: ReactJS binding using Glazier and Pipes.Fluid

Safe HaskellNone
LanguageHaskell2010

Glazier.React.Maker

Synopsis

Documentation

data Maker act nxt where Source #

DSL for IO effects required during making widget models and callbacks Maker remembers the action type to allow mapAction for changing the action type by parent widgets. The model type does not need to be changed, so it is hidden in the GADT existential.

Constructors

MkHandler :: (JSVal -> MaybeT IO [act]) -> (Callback (JSVal -> IO ()) -> nxt) -> Maker act nxt 
MkEmptyFrame :: (Frame mdl pln -> nxt) -> Maker act nxt 
MkRenderer :: Frame mdl pln -> (JSVal -> WindowT (Design mdl pln) ReactMl ()) -> (Callback (JSVal -> IO JSVal) -> nxt) -> Maker act nxt 
PutFrame :: Frame mdl pln -> Design mdl pln -> nxt -> Maker act nxt 
GetComponent :: (ReactComponent -> nxt) -> Maker act nxt 
MkKey :: (JSString -> nxt) -> Maker act nxt 

Instances

Functor (Maker act) Source # 

Methods

fmap :: (a -> b) -> Maker act a -> Maker act b #

(<$) :: a -> Maker act b -> Maker act a #

mkKey :: forall m act. MonadFree (Maker act) m => m JSString Source #

getComponent :: forall m act. MonadFree (Maker act) m => m ReactComponent Source #

putFrame :: forall mdl pln m act. MonadFree (Maker act) m => Frame mdl pln -> Design mdl pln -> m () Source #

mkRenderer :: forall mdl pln m act. MonadFree (Maker act) m => Frame mdl pln -> (JSVal -> WindowT (Design mdl pln) ReactMl ()) -> m (Callback (JSVal -> IO JSVal)) Source #

mkEmptyFrame :: forall mdl pln m act. MonadFree (Maker act) m => m (Frame mdl pln) Source #

mkHandler :: forall m act. MonadFree (Maker act) m => (JSVal -> MaybeT IO [act]) -> m (Callback (JSVal -> IO ())) Source #

mapAction :: (act -> act') -> Maker act a -> Maker act' a Source #

Allows changing the action type of Maker