aboutsummaryrefslogtreecommitdiff
path: root/src/client/LoggedIn/Home/Update.elm
diff options
context:
space:
mode:
authorJoris2017-03-27 10:18:40 +0200
committerJoris2017-03-27 10:18:40 +0200
commit64ff4707fdcd81c27c6be9903c3c82bc543ef016 (patch)
treefa0c3a9112f4f7c8bd383ad3e597041ab7d5a503 /src/client/LoggedIn/Home/Update.elm
parent40273c30166877b3341125ad5248793b2f2fcc64 (diff)
downloadbudget-64ff4707fdcd81c27c6be9903c3c82bc543ef016.tar.gz
budget-64ff4707fdcd81c27c6be9903c3c82bc543ef016.tar.bz2
budget-64ff4707fdcd81c27c6be9903c3c82bc543ef016.zip
Modelize punctual and monthly payment pages
Diffstat (limited to 'src/client/LoggedIn/Home/Update.elm')
-rw-r--r--src/client/LoggedIn/Home/Update.elm31
1 files changed, 20 insertions, 11 deletions
diff --git a/src/client/LoggedIn/Home/Update.elm b/src/client/LoggedIn/Home/Update.elm
index b0ce256..06c2c7e 100644
--- a/src/client/LoggedIn/Home/Update.elm
+++ b/src/client/LoggedIn/Home/Update.elm
@@ -5,9 +5,9 @@ module LoggedIn.Home.Update exposing
import Form exposing (Form)
import LoggedData exposing (LoggedData)
-
-import LoggedIn.Home.Msg as Home
import LoggedIn.Home.Model as Home
+import LoggedIn.Home.Msg as Home
+import Model.Frequency as Frequency exposing (Frequency(..))
update : LoggedData -> Home.Msg -> Home.Model -> (Home.Model, Cmd Home.Msg)
update loggedData msg model =
@@ -19,17 +19,26 @@ update loggedData msg model =
)
Home.UpdatePage page ->
- ( { model | currentPage = page }
+ ( updatePage page model
, Cmd.none
)
Home.SearchMsg formMsg ->
- ( { model
- | search = Form.update Home.validation formMsg model.search
- , currentPage =
+ let newModel =
case formMsg of
- Form.Input "name" _ _ -> 1
- _ -> model.currentPage
- }
- , Cmd.none
- )
+ Form.Input "name" _ _ -> updatePage 1 model
+ _ -> model
+ in ( { model | search = Form.update Home.validation formMsg model.search }
+ , Cmd.none
+ )
+
+updatePage : Int -> Home.Model -> Home.Model
+updatePage page model =
+ let frequency =
+ Form.getFieldAsString "frequency" model.search
+ |> .value
+ |> Maybe.andThen Frequency.fromString
+ in case frequency of
+ Just Punctual -> { model | punctualPage = page }
+ Just Monthly -> { model | monthlyPage = page }
+ Nothing -> model