{-# LANGUAGE OverloadedStrings #-} module Main where import Data.Text (pack) import Prelude hiding (span) import Shpadoinkle (Html, JSM, text) import Shpadoinkle.Backend.ParDiff (runParDiff) import Shpadoinkle.Html (br'_, button, div_, h2_, id', onClick, span) import Shpadoinkle.Html.Utils import Shpadoinkle.Run (runJSorWarp, simple) view :: Int -> Html m Int view count = div_ [ h2_ [ "Counter Example" ] , "The current count is: " , span [ id' "out" ] [ text . pack $ show count ] , br'_, br'_ , button [ onClick $ subtract 1 ] [ "Decrement" ] , button [ onClick (+ 1) ] [ "Increment" ] ] app :: JSM () app = simple runParDiff 0 view getBody main :: IO () main = runJSorWarp 8080 app