@@ -9,7 +9,10 @@ import Halogen.HTML as HH
99import Halogen.HTML.Events as E
1010import Halogen.HTML.Properties as P
1111import Icons (iconCheck , iconCode , iconEye , iconGithub , iconHeart )
12+ import Control.Monad.State (class MonadState )
13+ import Effect.Aff.Class (class MonadAff )
1214
15+ type Query :: forall k . k -> Type
1316type Query = Const Void
1417
1518data Action = Toggle
@@ -27,7 +30,7 @@ render state =
2730 , HH .div_
2831 [ iconCheck
2932 [ className checkClassName
30- , E .onClick $ Just <<< const Toggle
33+ , E .onClick $ const Toggle
3134 ]
3235 , HH .text (show state.on)
3336 ]
@@ -52,8 +55,8 @@ render state =
5255 repoUrl = " https://github.com/rnons/purescript-svg-parser-halogen"
5356 demoSourceUrl = repoUrl <> " /tree/master/example"
5457
55- app :: forall m . H.Component HH.HTML Query Unit Void m
56- app = H .mkComponent
58+ component :: forall query input output m . MonadAff m => H.Component query input output m
59+ component = H .mkComponent
5760 { initialState: const initialState
5861 , render
5962 , eval: H .mkEval $ H .defaultEval
@@ -65,7 +68,9 @@ app = H.mkComponent
6568 initialState :: State
6669 initialState = { on: false }
6770
68- handleAction :: Action -> H.HalogenM State Action () Void m Unit
69- handleAction = case _ of
70- Toggle -> do
71- H .modify_ (\state -> { on: not state.on })
71+ handleAction :: forall m .
72+ MonadState State m =>
73+ Action -> m Unit
74+ handleAction = case _ of
75+ Toggle -> do
76+ H .modify_ (\state -> { on: not state.on })
0 commit comments