@@ -3,27 +3,34 @@ module ControlledInput where
33import Prelude
44
55import Data.Maybe (Maybe (..), fromMaybe , maybe )
6- import React.Basic (ReactComponent , react )
6+ import React.Basic (ReactComponent , fragment , react )
77import React.Basic.DOM as R
88import React.Basic.DOM.Events (preventDefault , targetValue , timeStamp )
99import React.Basic.Events as Events
1010
1111component :: ReactComponent { }
12- component = react
13- { displayName: " ControlledInput"
14- , initialState: { value: " hello world" , timeStamp: Nothing }
15- , receiveProps: \_ _ _ -> pure unit
16- , render: \_ state setState ->
17- R .div_
18- [ R .p_ [ R .input { onChange: Events .handler (preventDefault >>> Events .merge { targetValue, timeStamp })
19- \{ timeStamp, targetValue } -> setState \_ ->
20- { value: fromMaybe " " targetValue
21- , timeStamp: Just timeStamp
22- }
23- , value: state.value
24- }
25- ]
12+ component = react { displayName: " ControlledInput" , initialState, receiveProps, render }
13+ where
14+ initialState =
15+ { value: " hello world"
16+ , timeStamp: Nothing
17+ }
18+
19+ receiveProps _ _ _ =
20+ pure unit
21+
22+ render _ state setState =
23+ fragment
24+ [ R .input
25+ { onChange:
26+ Events .handler
27+ (preventDefault >>> Events .merge { targetValue, timeStamp })
28+ \{ timeStamp, targetValue } ->
29+ setState _ { value = fromMaybe " " targetValue
30+ , timeStamp = Just timeStamp
31+ }
32+ , value: state.value
33+ }
2634 , R .p_ [ R .text (" Current value = " <> show state.value) ]
2735 , R .p_ [ R .text (" Changed at = " <> maybe " never" show state.timeStamp) ]
2836 ]
29- }
0 commit comments