Skip to content

Commit

Permalink
Use type synonyms from monomer
Browse files Browse the repository at this point in the history
  • Loading branch information
RubenAstudillo committed Oct 3, 2023
1 parent e67d55e commit a799bac
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 26 deletions.
9 changes: 2 additions & 7 deletions src/RsiBreak/Widget/Clockdown.hs
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ mainCounter = "MainCounter"
mainCounterKey :: WidgetKey
mainCounterKey = WidgetKey mainCounter

buildUI :: WidgetEnv ClockModel ClockEvent -> ClockModel -> WidgetNode ClockModel ClockEvent
buildUI :: UIBuilder ClockModel ClockEvent
buildUI _wenv (ClockModel _ timer _) =
vstack
[ label "Rsi break!"
Expand All @@ -47,12 +47,7 @@ buildUI _wenv (ClockModel _ timer _) =
, composite "timer" toTimerModel Timer.buildUI (Timer.handleEvent ClockUpdate) `nodeKey` mainCounter
] `styleBasic` [padding 10]

handleEvent ::
WidgetEnv ClockModel ClockEvent ->
WidgetNode ClockModel ClockEvent ->
ClockModel ->
ClockEvent ->
[AppEventResponse ClockModel ClockEvent]
handleEvent :: EventHandler ClockModel ClockEvent es ep
handleEvent _wenv _node model (ClockUpdate td) =
let tdText = fromString (formatTime defaultTimeLocale "%m:%02S" td)
in [Model (model{_cmClock = tdText}), Request RenderOnce]
Expand Down
13 changes: 2 additions & 11 deletions src/RsiBreak/Widget/Settings.hs
Original file line number Diff line number Diff line change
Expand Up @@ -21,23 +21,14 @@ $(makeLenses 'TimerSetting)
data TimerSettingEvent = TSENewWorkTime Minutes | TSENewRestTime Minutes
deriving (Eq, Show)

handleEvent ::
ep ->
WidgetEnv TimerSetting TimerSettingEvent ->
WidgetNode TimerSetting TimerSettingEvent ->
TimerSetting ->
TimerSettingEvent ->
[EventResponse TimerSetting TimerSettingEvent sp ep]
handleEvent :: ep -> EventHandler TimerSetting TimerSettingEvent sp ep
handleEvent onChangeEvent _wenv _node model evt =
let changeModel = case evt of
TSENewWorkTime newm -> Model (set workInterval newm model)
TSENewRestTime newm -> Model (set restInterval newm model)
in [changeModel, Report onChangeEvent]

buildUI ::
WidgetEnv TimerSetting TimerSettingEvent ->
TimerSetting ->
WidgetNode TimerSetting TimerSettingEvent
buildUI :: UIBuilder TimerSetting TimerSettingEvent
buildUI _wenv _model =
vstack
[ hstack
Expand Down
10 changes: 2 additions & 8 deletions src/RsiBreak/Widget/Timer.hs
Original file line number Diff line number Diff line change
Expand Up @@ -45,13 +45,7 @@ isWorkTime :: TimerState -> Bool
isWorkTime (TimerWorkWait _) = True
isWorkTime _ = False

handleEvent ::
(NominalDiffTime -> ep) ->
WidgetEnv TimerModel TimerEvent ->
WidgetNode TimerModel TimerEvent ->
TimerModel ->
TimerEvent ->
[EventResponse TimerModel TimerEvent sp ep]
handleEvent :: (NominalDiffTime -> ep) -> EventHandler TimerModel TimerEvent es ep
handleEvent toEp _wenv _node model@(TimerModel settings timer) evt =
case evt of
TimerStateUpdate wstate -> [Model (model{tmState = wstate})]
Expand All @@ -65,7 +59,7 @@ handleEvent toEp _wenv _node model@(TimerModel settings timer) evt =
TimerStartRestTime ->
[Producer (waitRest settings)]

buildUI :: WidgetEnv TimerModel TimerEvent -> TimerModel -> WidgetNode TimerModel TimerEvent
buildUI :: UIBuilder TimerModel TimerEvent
buildUI _wenv _model =
vstack
[ button "Start" TimerStartWorkTime
Expand Down

0 comments on commit a799bac

Please sign in to comment.