aboutsummaryrefslogtreecommitdiff
path: root/src/client/elm/View/Header.elm
blob: 74fc2cc65079dd884dcf0d3168a891b853881038 (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
57
58
59
60
61
62
module View.Header
  ( renderHeader
  ) where

import Signal exposing (Address)
import Dict

import TransitRouter

import Route exposing (..)

import Html exposing (..)
import Html.Attributes exposing (..)
import Html.Events exposing (..)

import Model exposing (Model)
import Model.Translations exposing (getMessage)
import Action exposing (..)
import Model.View exposing (..)

import View.Icon exposing (renderIcon)
import View.Click exposing (clickTo)

renderHeader : Address Action -> Model -> Html
renderHeader address model =
  header
    []
    (  [ div [ class "title" ] [ text (getMessage "SharedCost" model.translations) ] ]
    ++ let item route name =
             a
               ( [ classList
                     [ ("item", True)
                     , ("current", TransitRouter.getRoute model == route)
                     ]
                 ] ++ clickTo route
               )
               [ text (getMessage name model.translations)
               ]
       in  case model.view of
             LoggedInView { me, users } ->
               [ item Home "PaymentsTitle"
               , item Income "Income"
               , item Stat "Statistics"
               , div
                   [ class "nameSignOut" ]
                   [ div
                       [ class "name" ]
                       [ Dict.get me users
                           |> Maybe.map .name
                           |> Maybe.withDefault ""
                           |> text
                       ]
                   , button
                       [ class "signOut item"
                       , onClick address SignOut
                       ]
                       [ renderIcon "power-off" ]
                   ]
               ]
             _ ->
               []
    )