packages feed

WidgetRattus-0.3: examples/gui/src/Counter.hs

{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE OverloadedLists #-}
{-# OPTIONS -fplugin=WidgetRattus.Plugin #-}
{-# OPTIONS_GHC -Wno-unrecognised-pragmas #-}
{-# HLINT ignore "Evaluate" #-}
{-# HLINT ignore "Use const" #-}
{-# LANGUAGE ScopedTypeVariables #-}

import WidgetRattus
import WidgetRattus.Signal
import WidgetRattus.Widgets

import Prelude hiding (map, const, zipWith, zip, filter, getLine, putStrLn,null)
import Data.Text hiding (filter, map, all)

window :: C VStack
window = do 
    btn <- mkButton (const ("Increment" :: Text))
    let sig = btnOnClickSig btn
    let sig' = scanAwait (box (\ n _ -> n+1 :: Int)) 0 sig 
    lbl <- mkLabel sig'
    mkConstVStack (lbl :* btn)
    

main :: IO ()
main = runApplication window