module View.SignIn ( renderSignIn ) where import Html as H exposing (..) import Html.Attributes exposing (..) import Html.Events exposing (..) import Signal exposing (Address) import Json.Decode as Json import Update exposing (..) import Update.SignIn exposing (..) import Model exposing (Model) import Model.Action exposing (..) import Model.Action.SignInAction exposing (..) import Model.View.SignInView exposing (..) import Model.Translations exposing (getMessage) import View.Events exposing (onSubmitPrevDefault) import View.Icon exposing (renderSpinIcon) renderSignIn : Address Action -> Model -> SignInView -> Html renderSignIn address model signInView = div [ class "signIn" ] [ H.form [ onSubmitPrevDefault address (SignIn signInView.login) ] [ input [ value signInView.login , on "input" targetValue (Signal.message address << UpdateSignIn << UpdateLogin) , type' "text" , autocomplete True ] [] , button [] [ if signInView.waitingServer then renderSpinIcon else text (getMessage "SignIn" model.translations) ] ] , div [ class "result" ] [ signInResult model signInView ] ] signInResult : Model -> SignInView -> Html signInResult model signInView = case signInView.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 ""