Module

Pha.App.Internal

Package
purescript-pha
Repository
gbagan/purescript-pha

#Interpreter Source

type Interpreter effs = VariantF effs (Effect Unit) -> Effect Unit

#AppPrimitives Source

type AppPrimitives msg state = { getS :: Effect state, renderVDom :: VDom msg -> Effect Unit, setS :: state -> Effect Unit }

#App Source

type App msg state = { dispatch :: msg -> Effect Unit, dispatchEvent :: Event -> (EventHandler msg) -> Effect Unit, init :: Effect Unit, render :: state -> Effect Unit, subscriptions :: state -> Array (Sub msg) }

#AppBuilder Source

type AppBuilder msg state = AppPrimitives msg state -> App msg state

#app Source

app :: forall state msg. AppBuilder msg state -> String -> Effect Unit

#getDispatchers Source

getDispatchers :: forall effs state msg. Effect state -> (state -> Effect Unit) -> (msg -> Update state effs) -> Interpreter effs -> { dispatch :: msg -> Effect Unit, dispatchEvent :: Event -> (EventHandler msg) -> Effect Unit, runAction :: Update state effs -> Effect Unit }