From d57ea4eda1339ae55f1f1f6341d1af6b1a690330 Mon Sep 17 00:00:00 2001 From: Joris Guyonvarch Date: Sat, 21 Mar 2015 15:57:37 +0100 Subject: Can remove numbers in timer edition --- src/Update/UpdateTimerEdition.elm | 35 +++++++++++++++++++++++++---------- 1 file changed, 25 insertions(+), 10 deletions(-) (limited to 'src/Update/UpdateTimerEdition.elm') diff --git a/src/Update/UpdateTimerEdition.elm b/src/Update/UpdateTimerEdition.elm index cff39f7..e9493eb 100644 --- a/src/Update/UpdateTimerEdition.elm +++ b/src/Update/UpdateTimerEdition.elm @@ -1,19 +1,34 @@ module Update.UpdateTimerEdition ( updateTimerEdition + , TimerEditionAction(..) ) where import Char (..) import Model.TimerEdition (..) -updateTimerEdition : Maybe Char -> TimerEdition -> TimerEdition -updateTimerEdition maybeChar timerEdition = - case maybeChar of - Just char -> - if isDigit char - then - { timerEdition | numbers <- char :: timerEdition.numbers } - else +import Utils.List (..) + +type TimerEditionAction = + DeleteLast + | AddNumber KeyCode + +updateTimerEdition : TimerEditionAction -> TimerEdition -> TimerEdition +updateTimerEdition action timerEdition = + case action of + DeleteLast -> + case maybeTail timerEdition.numbers of + Just tailNumbers -> + { timerEdition | numbers <- tailNumbers } + Nothing -> + timerEdition + AddNumber keyCode -> + case keyCodeToNumberChar keyCode of + Just char -> + if isDigit char + then + { timerEdition | numbers <- char :: timerEdition.numbers } + else + timerEdition + Nothing -> timerEdition - Nothing -> - timerEdition -- cgit v1.2.3