aboutsummaryrefslogtreecommitdiff
path: root/src/client/elm/Model.elm
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/elm/Model.elm')
-rw-r--r--src/client/elm/Model.elm32
1 files changed, 32 insertions, 0 deletions
diff --git a/src/client/elm/Model.elm b/src/client/elm/Model.elm
new file mode 100644
index 0000000..43a19c5
--- /dev/null
+++ b/src/client/elm/Model.elm
@@ -0,0 +1,32 @@
+module Model
+ ( Model
+ , initialModel
+ ) where
+
+import Time exposing (Time)
+import Json.Decode as Json
+
+import Model.View exposing (..)
+import Model.Translations exposing (..)
+import Model.Config exposing (..)
+
+type alias Model =
+ { view : View
+ , currentTime : Time
+ , translations : Translations
+ , config : Config
+ }
+
+initialModel : Time -> String -> String -> Model
+initialModel initialTime translationsValue configValue =
+ { view = LoadingView
+ , currentTime = initialTime
+ , translations =
+ case Json.decodeString translationsDecoder translationsValue of
+ Ok translations -> translations
+ Err err -> []
+ , config =
+ case Json.decodeString configDecoder configValue of
+ Ok config -> config
+ Err err -> { currency = "" }
+ }