aboutsummaryrefslogtreecommitdiff
path: root/src/client/elm/SignIn/View.elm
blob: 2cec5863e917037e0d7aa20751a0ee558df5786d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
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 ""