module Main ( main ) where import Graphics.Element exposing (..) import Html exposing (Html) import StartApp exposing (App) import Effects exposing (Effects, Never) import Json.Decode as Json import Task exposing (..) import Time exposing (..) import Server import Action exposing (..) import Model exposing (Model, initialModel) import Update exposing (update) import View exposing (view) import Utils.Maybe exposing (isJust) main : Signal Html main = app.html app : App Model app = StartApp.start { init = case Json.decodeString Json.string signInError of Ok signInError -> ( initialModel initialTime translations conf (Just signInError) , Effects.none ) Err _ -> ( initialModel initialTime translations conf Nothing , Server.init |> Task.map GoLoggedInView |> flip Task.onError (always <| Task.succeed GoSignInView) |> Effects.task ) , view = view , update = update , inputs = [ Signal.map UpdateTime (Time.every 1000) ] } port tasks : Signal (Task.Task Never ()) port tasks = app.tasks -- Input ports port initialTime : Time port translations : String port conf : String port signInError : String