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 = "" } }