Main.hs
module Main where
import Prelude
import Data.Maybe (Maybe(..))
import Effect (Effect)
import Effect.Aff (launchAff_)
import Halogen (liftEffect)
import Halogen as H
import Halogen.Aff as HA
import Halogen.VDom.Driver (runUI)
import Routing.Duplex (parse)
import Routing.Hash (matchesWith)
import Frontend.Component.Index as Index
import Frontend.Route (routeCodec)
main :: Effect Unit
main = HA.runHalogenAff do
body <- HA.awaitBody
halogenIO <- runUI Index.component unit body
void $ liftEffect $ matchesWith ( parse routeCodec ) \mOld new ->
when ( mOld /= Just new ) do
launchAff_$ halogenIO.query $ H.tell $ Index.Navigate new
pure unit