aboutsummaryrefslogtreecommitdiff
path: root/src/client/elm/Main.elm
blob: 2f4acb6d1ee8a48513141fa2d5706659910da5c9 (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
51
52
53
54
55
56
module Main
  ( main
  ) where

import Graphics.Element exposing (..)

import Html exposing (Html)
import StartApp exposing (App)
import Effects exposing (Effects, Never)

import Task exposing (..)
import Time exposing (..)

import Model exposing (Model, initialModel)
import Model.Action exposing (..)
import Model.Communication exposing (Communication(SignIn))

import Update exposing (update)

import View exposing (view)

import Persona as Persona exposing (operations)

import InitViewAction exposing (initViewAction)

main : Signal Html
main = app.html

app : App Model
app = StartApp.start
  { init =
      ( initialModel initialTime translations config
      , Effects.task initViewAction
      )
  , view = view
  , update = update
  , inputs =
      [ Signal.map UpdateTime (Time.every 1000)
      , Signal.map (ServerCommunication << SignIn) validateSignIn
      ]
  }

port tasks : Signal (Task.Task Never ())
port tasks = app.tasks

-- Input ports

port initialTime : Time
port translations : String
port config : String
port validateSignIn : Signal String

-- Output ports

port askSignIn : Signal String
port askSignIn = Signal.map toString operations.signal