-
Notifications
You must be signed in to change notification settings - Fork 5
/
Part4.elm
executable file
·120 lines (90 loc) · 2.37 KB
/
Part4.elm
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
module Part4 exposing (Model, Msg(..), defaultKey, init, main, translateText, update, view)
import Browser
import EmojiConverter
import Html exposing (..)
import Html.Attributes exposing (..)
import Html.Events exposing (..)
-- MAIN
main : Program () Model Msg
main =
Browser.sandbox
{ init = init
, view = view
, update = update
}
-- MODEL
type alias Model =
{ currentText : String }
init : Model
init =
{ currentText = "" }
defaultKey : String
defaultKey =
"😳"
-- UPDATE
type Msg
= SetCurrentText String
| ToggleDirection
update : Msg -> Model -> Model
update msg model =
case msg of
SetCurrentText newText ->
{ model | currentText = newText }
ToggleDirection ->
-- currently, this does nothing!
model
-- VIEW
view : Model -> Html Msg
view model =
div
[]
[ node "link"
[ rel "stylesheet"
, href "stylesheets/main.css"
]
[]
, nav
[]
[ div
[ class "nav-wrapper light-blue lighten-2" ]
[ div
[ class "brand-logo center" ]
[ text "Elmoji Translator" ]
]
]
, section
[ class "container" ]
[ div
[ class "input-field" ]
[ input
[ type_ "text"
, class "center"
, placeholder "Let's Translate!"
, onInput SetCurrentText
]
[]
]
, div
[ class "switch center" ]
[ label
[]
[ text "Translate Text"
, input
[ type_ "checkbox"
, onClick ToggleDirection
]
[]
, span
[ class "lever" ]
[]
, text "Translate Emoji"
]
]
, p
[ class "center output-text emoji-size" ]
[ text (translateText model) ]
]
]
translateText : Model -> String
translateText model =
EmojiConverter.textToEmoji defaultKey model.currentText