-
Notifications
You must be signed in to change notification settings - Fork 14
/
Copy pathTextFields.purs
61 lines (42 loc) · 1.02 KB
/
TextFields.purs
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
module TextFields.Main where
import Prelude
import Common.BeginnerApp (BeginnerApp)
import Common.BeginnerApp as BeginnerApp
import Control.Monad.Eff (Eff)
import Data.Array as Array
import Data.String as String
import Spork.Html (Html, div, input, onValueInput, placeholder, text, always)
type Model =
{ content :: String
}
data Msg
= Change String
model :: Model
model =
{ content: "" }
render :: Model -> Html Msg
render model =
div []
[ input [ placeholder "Text to reverse", onValueInput (always Change) ]
, div [] [ text (reverse model.content) ]
]
update :: Model -> Msg -> Model
update model msg =
case msg of
Change newContent ->
model { content = newContent }
app :: BeginnerApp Model Msg
app =
{ render
, update
, model
}
reverse :: String -> String
reverse str =
String.toCharArray str
# Array.reverse
# String.fromCharArray
main :: Eff _ Unit
main = do
inst <- BeginnerApp.makeWithSelector app "#app"
inst.run