From 669d6edcddeb72bcd520f4ba2e4802d2dbed915d Mon Sep 17 00:00:00 2001 From: Patryk Mrukot Date: Mon, 14 Aug 2017 22:40:43 +0200 Subject: [PATCH] feat(elm): Basic user profile page (#64) --- aion/web/elm/src/General/Models.elm | 1 + aion/web/elm/src/General/View.elm | 7 ++++--- aion/web/elm/src/Routing.elm | 8 +++++++- aion/web/elm/src/User/View.elm | 25 +++++++++++++++++++++++++ aion/web/elm/src/View.elm | 6 +++++- 5 files changed, 42 insertions(+), 5 deletions(-) create mode 100644 aion/web/elm/src/User/View.elm diff --git a/aion/web/elm/src/General/Models.elm b/aion/web/elm/src/General/Models.elm index 45e8bfa..bbfe370 100644 --- a/aion/web/elm/src/General/Models.elm +++ b/aion/web/elm/src/General/Models.elm @@ -35,6 +35,7 @@ type Route | RoomListRoute | RoomRoute RoomId | PanelRoute + | UserRoute | NotFoundRoute diff --git a/aion/web/elm/src/General/View.elm b/aion/web/elm/src/General/View.elm index d51da67..1441894 100644 --- a/aion/web/elm/src/General/View.elm +++ b/aion/web/elm/src/General/View.elm @@ -1,10 +1,10 @@ module General.View exposing (..) import General.Models exposing (Model) -import Html exposing (Html, a, div, i, li, p, text, ul) +import Html exposing (Html, a, div, h3, i, li, p, text, ul) import Html.Attributes exposing (href) import Msgs exposing (Msg) -import Routing exposing (panelPath, roomsPath) +import Routing exposing (panelPath, roomsPath, userPath) import RemoteData exposing (WebData) import Room.Models exposing (RoomsData) @@ -19,10 +19,11 @@ notFoundView = homeView : Model -> Html Msg homeView model = div [] - [ p [] [ text "Welcome to Aion!" ] + [ h3 [] [ text "Welcome to Aion!" ] , ul [] [ li [] [ a [ href roomsPath ] [ text "Rooms" ] ] , li [] [ a [ href panelPath ] [ text "Panel" ] ] + , li [] [ a [ href userPath ] [ text "Profile" ] ] ] ] diff --git a/aion/web/elm/src/Routing.elm b/aion/web/elm/src/Routing.elm index 19d8c6c..9393e96 100644 --- a/aion/web/elm/src/Routing.elm +++ b/aion/web/elm/src/Routing.elm @@ -1,6 +1,6 @@ module Routing exposing (..) -import General.Models exposing (Route(LoginRoute, NotFoundRoute, PanelRoute, RoomListRoute, RoomRoute)) +import General.Models exposing (Route(LoginRoute, NotFoundRoute, PanelRoute, RoomListRoute, RoomRoute, UserRoute)) import Navigation exposing (Location) import UrlParser exposing (..) @@ -12,6 +12,7 @@ matchers = , map RoomRoute (s "rooms" int) , map RoomListRoute (s "rooms") , map PanelRoute (s "panel") + , map UserRoute (s "profile") ] @@ -33,3 +34,8 @@ roomsPath = panelPath : String panelPath = "#panel" + + +userPath : String +userPath = + "#profile" diff --git a/aion/web/elm/src/User/View.elm b/aion/web/elm/src/User/View.elm new file mode 100644 index 0000000..bf66f9e --- /dev/null +++ b/aion/web/elm/src/User/View.elm @@ -0,0 +1,25 @@ +module User.View exposing (..) + +import General.Models exposing (Model) +import Html exposing (..) +import Msgs exposing (Msg(..)) +import RemoteData + + +userView : Model -> Html Msg +userView model = + case model.user of + RemoteData.Success user -> + div [] + [ h3 [] [ text ("Username: " ++ user.name) ] + , h3 [] [ text ("Email: " ++ user.email) ] + ] + + RemoteData.NotAsked -> + text "" + + RemoteData.Loading -> + text "Loading..." + + RemoteData.Failure error -> + text (toString error) diff --git a/aion/web/elm/src/View.elm b/aion/web/elm/src/View.elm index 5ee78f6..ceeca55 100644 --- a/aion/web/elm/src/View.elm +++ b/aion/web/elm/src/View.elm @@ -1,11 +1,12 @@ module View exposing (..) -import General.Models exposing (Model, Route(LoginRoute, NotFoundRoute, PanelRoute, RoomListRoute, RoomRoute)) +import General.Models exposing (Model, Route(LoginRoute, NotFoundRoute, PanelRoute, RoomListRoute, RoomRoute, UserRoute)) import General.View exposing (homeView, notFoundView, roomListView) import Html exposing (..) import Msgs exposing (Msg(..)) import Panel.View exposing (panelView) import Room.View exposing (roomView) +import User.View exposing (userView) view : Model -> Html Msg @@ -29,5 +30,8 @@ page model = PanelRoute -> panelView model + UserRoute -> + userView model + NotFoundRoute -> notFoundView