module SignIn.View exposing ( view ) import Html as H exposing (..) import Html.Attributes exposing (..) import Html.Events exposing (..) import Json.Decode as Json 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) import View.Icon exposing (renderSpinIcon) 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 |> (Json.map <| (UpdateSignIn << SignInMsg.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 Msg 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 ""