Add a simple input module as an example.
parent
ef3be6cc76
commit
ae0de9d734
|
@ -0,0 +1,69 @@
|
|||
-- | `App.HomeInterface` presents the website and its features.
|
||||
module App.SimpleInput where
|
||||
|
||||
import Prelude (Unit, ($))
|
||||
|
||||
-- import Data.Either (Either(..))
|
||||
-- import Data.Maybe (Maybe(..), maybe)
|
||||
-- import Data.Tuple (Tuple(..))
|
||||
import Effect.Aff.Class (class MonadAff)
|
||||
import Halogen as H
|
||||
import Halogen.HTML as HH
|
||||
-- import Halogen.HTML.Events as HE
|
||||
import Halogen.HTML.Properties as HP
|
||||
|
||||
import Bulma as Bulma
|
||||
|
||||
type Input = Unit
|
||||
data Action = UpdateStuff String
|
||||
|
||||
data Query a = DoNothing a
|
||||
type Output = Unit
|
||||
type Slot = H.Slot Query Output
|
||||
|
||||
type State = { stuff :: String }
|
||||
|
||||
component :: forall m. MonadAff m => H.Component Query Input Output m
|
||||
component =
|
||||
H.mkComponent
|
||||
{ initialState
|
||||
, render
|
||||
, eval: H.mkEval $ H.defaultEval
|
||||
{ handleAction = handleAction
|
||||
}
|
||||
}
|
||||
|
||||
handleAction :: forall m. MonadAff m => Action -> H.HalogenM State Action () Output m Unit
|
||||
handleAction = case _ of
|
||||
UpdateStuff val -> H.modify_ _ { stuff = val }
|
||||
|
||||
initialState :: forall input. input -> State
|
||||
initialState _ = { stuff: "" }
|
||||
|
||||
render :: forall m. State -> H.ComponentHTML Action () m
|
||||
render state
|
||||
= HH.div_
|
||||
[ Bulma.hero_danger "A simple input" "Nothing much to see"
|
||||
, Bulma.section_small [ render_stuff ]
|
||||
]
|
||||
where
|
||||
-- Some helpers.
|
||||
title = Bulma.h3
|
||||
p = Bulma.p
|
||||
b x = Bulma.column_ [ Bulma.box x ]
|
||||
|
||||
render_stuff = Bulma.columns_ [ b [ title "stuff"
|
||||
, stuff_input
|
||||
]
|
||||
, b [ title "value"
|
||||
, p state.stuff
|
||||
]
|
||||
]
|
||||
|
||||
stuff_input
|
||||
= Bulma.box_input "stuff" "stuff" "stuff"
|
||||
UpdateStuff
|
||||
state.stuff
|
||||
true
|
||||
should_be_disabled
|
||||
should_be_disabled = (if true then (HP.enabled true) else (HP.disabled true))
|
Loading…
Reference in New Issue