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 Model.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) , type' "text" , autocomplete True ] [] , 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 ""