module SignIn.View
( view
) where
import Html as H exposing (..)
import Html.Attributes exposing (..)
import Html.Events exposing (..)
import Signal exposing (Address)
import Json.Decode as Json
import SignIn.Action as SignInAction
import SignIn.Model as SignInModel
import Update exposing (..)
import Model exposing (Model)
import Action exposing (..)
import Model.Translations exposing (getMessage)
import View.Events exposing (onSubmitPrevDefault)
import View.Icon exposing (renderSpinIcon)
view : Address Action -> Model -> SignInModel.Model -> Html
view address model signInModel =
div
[ class "signIn" ]
[ H.form
[ onSubmitPrevDefault address (SignIn signInModel.login) ]
[ input
[ value signInModel.login
, on "input" targetValue (Signal.message address << UpdateSignIn << SignInAction.UpdateLogin)
, name "email"
]
[]
, button
[]
[ if signInModel.waitingServer
then renderSpinIcon
else text (getMessage "SignIn" model.translations)
]
]
, div
[ class "result" ]
[ signInResult model signInModel ]
]
signInResult : Model -> SignInModel.Model -> Html
signInResult model signInModel =
case signInModel.result of
Just result ->
case result of
Ok login ->
div
[ class "success" ]
[ text (getMessage "SignInEmailSent" model.translations) ]
Err error ->
div
[ class "error" ]
[ text (getMessage error model.translations) ]
Nothing ->
text ""