diff options
Diffstat (limited to 'src/client/View/Header.elm')
-rw-r--r-- | src/client/View/Header.elm | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/src/client/View/Header.elm b/src/client/View/Header.elm new file mode 100644 index 0000000..12fb87c --- /dev/null +++ b/src/client/View/Header.elm @@ -0,0 +1,60 @@ +module View.Header exposing + ( view + ) + +import Dict + +import FontAwesome +import View.Color as Color + +import Page exposing (..) + +import Html exposing (..) +import Html.Attributes exposing (..) +import Html.Events exposing (..) + +import Model exposing (Model) +import Model.Translations exposing (getMessage) +import Msg exposing (..) +import Model.View exposing (..) + +view : Model -> Html Msg +view model = + header + [] + ( [ div [ class "title" ] [ text (getMessage model.translations "SharedCost") ] ] + ++ let item page name = + a + [ href (Page.toHash page) + , classList + [ ("item", True) + , ("current", model.page == page) + ] + ] + [ text (getMessage model.translations name) + ] + in case model.view of + LoggedInView { me, users } -> + [ item Home "PaymentsTitle" + , item Income "Income" + , item Categories "Categories" + , item Statistics "Statistics" + , div + [ class "nameSignOut" ] + [ div + [ class "name" ] + [ Dict.get me users + |> Maybe.map .name + |> Maybe.withDefault "" + |> text + ] + , button + [ class "signOut item" + , onClick SignOut + ] + [ FontAwesome.power_off Color.white 30 ] + ] + ] + _ -> + [] + ) |