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 = let item = specialItem True "" specialItem showCurrent additionalClasses route name = a ( [ classList [ ("item", True) , (additionalClasses, True) , ("current", showCurrent && TransitRouter.getRoute model == route) ] ] ++ clickTo route ) [ text (getMessage name model.translations) ] in header [] ( case model.view of LoggedInView { me, users } -> [ specialItem True "title" Home "SharedCost" , item Income "Income" , item Stat "Statistics" , button [ class "signOut item" , onClick address SignOut ] [ renderIcon "power-off" ] , div [ class "name" ] [ Dict.get me users |> Maybe.map .name |> Maybe.withDefault "" |> text ] ] _ -> [specialItem False "title" Home "SharedCost"] )