aboutsummaryrefslogtreecommitdiff
path: root/src/client/elm/Model.elm
blob: 7852c9ae2107831c8c13d52e8a4f5f75fdd62437 (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
module Model
  ( Model
  , initialModel
  ) where

import Time exposing (Time)
import Json.Decode as Json

import Model.View exposing (..)
import Model.View.SignInView exposing (initSignInView)
import Model.Translations exposing (..)
import Model.Conf exposing (..)

import Utils.Maybe exposing (isJust)

type alias Model =
  { view : View
  , currentTime : Time
  , translations : Translations
  , conf : Conf
  }

initialModel : Time -> String -> String -> Maybe String -> Model
initialModel initialTime translations conf mbSignInError =
  { view =
      if isJust mbSignInError
        then SignInView (initSignInView mbSignInError)
        else LoadingView
  , 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 = "" }
  }