blob: b4213d5437b5b6ef4f8dec7f11df245f99c4846a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
module Model
( Model
, initialModel
) where
import Time exposing (Time)
import Json.Decode as Json
import TransitRouter
import Route exposing (Route)
import Model.View exposing (..)
import Model.Translations exposing (..)
import Model.Conf exposing (..)
import Model.InitResult exposing (..)
import LoggedIn.Model as LoggedInModel
import SignIn.Model as SignInModel
import Utils.Maybe exposing (isJust)
type alias Model =
{ view : View
, currentTime : Time
, translations : Translations
, conf : Conf
, transitRouter : TransitRouter.TransitRouter Route
}
initialModel : Time -> String -> String -> InitResult -> Model
initialModel initialTime translations conf initResult =
{ view =
case initResult of
InitEmpty ->
SignInView (SignInModel.init Nothing)
InitSuccess init ->
LoggedInView (LoggedInModel.init init)
InitError error ->
SignInView (SignInModel.init (Just error))
, currentTime = initialTime
, translations =
case Json.decodeString translationsDecoder translations of
Ok translations -> translations
Err _ -> []
, conf =
case Json.decodeString confDecoder conf of
Ok conf -> conf
Err _ -> { currency = "" }
, transitRouter = TransitRouter.empty Route.Empty
}
|