From 1e47a7754ca38bd1a6c74765d8378caf68ce4619 Mon Sep 17 00:00:00 2001 From: Joris Date: Sun, 26 Mar 2017 21:10:42 +0200 Subject: Separate client and server watch --- src/client/SignIn/View.elm | 63 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 src/client/SignIn/View.elm (limited to 'src/client/SignIn/View.elm') diff --git a/src/client/SignIn/View.elm b/src/client/SignIn/View.elm new file mode 100644 index 0000000..88f74b0 --- /dev/null +++ b/src/client/SignIn/View.elm @@ -0,0 +1,63 @@ +module SignIn.View exposing + ( view + ) + +import Json.Decode as Decode + +import FontAwesome +import View.Color as Color + +import Html as H exposing (..) +import Html.Attributes exposing (..) +import Html.Events exposing (..) + +import SignIn.Msg as SignInMsg +import SignIn.Model as SignInModel + +import Update exposing (..) + +import Model exposing (Model) +import Msg exposing (..) +import Model.Translations exposing (getMessage) + +import View.Events exposing (onSubmitPrevDefault) + +view : Model -> SignInModel.Model -> Html Msg +view model signInModel = + div + [ class "signIn" ] + [ H.form + [ onSubmitPrevDefault (SignIn signInModel.login) ] + [ input + [ value signInModel.login + , on "input" (targetValue |> (Decode.map <| (UpdateSignIn << SignInMsg.UpdateLogin))) + , name "email" + ] + [] + , button + [] + [ if signInModel.waitingServer + then FontAwesome.spinner Color.white 20 + else text (getMessage model.translations "SignIn") + ] + ] + , div + [ class "result" ] + [ signInResult model signInModel ] + ] + +signInResult : Model -> SignInModel.Model -> Html Msg +signInResult model signInModel = + case signInModel.result of + Just result -> + case result of + Ok login -> + div + [ class "success" ] + [ text (getMessage model.translations "SignInEmailSent") ] + Err error -> + div + [ class "error" ] + [ text (getMessage model.translations error) ] + Nothing -> + text "" -- cgit v1.2.3