Skip to content

Commit 0902596

Browse files
authored
Merge pull request #25 from lumihq/michael/use-maybe
Use Maybe in targetValue and targetChecked
2 parents 593beb2 + 5fc1f5b commit 0902596

File tree

2 files changed

+13
-12
lines changed

2 files changed

+13
-12
lines changed

examples/controlled-input/src/ControlledInput.purs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,7 @@ module ControlledInput where
22

33
import Prelude
44

5-
import Data.Maybe (Maybe(..), fromMaybe, maybe)
6-
import Data.Nullable (toMaybe)
5+
import Data.Maybe (Maybe(..), fromMaybe)
76
import React.Basic (ReactComponent, react)
87
import React.Basic.DOM as R
98
import React.Basic.DOM.Events (targetValue, timeStamp)
@@ -16,14 +15,15 @@ component = react
1615
, receiveProps: \_ _ _ -> pure unit
1716
, render: \_ state setState ->
1817
R.div_
19-
[ R.p_ [ R.input { onChange: Events.handler (Events.preventDefault >>> Events.merge { targetValue, timeStamp }) \{ timeStamp, targetValue } ->
20-
setState \_ -> { value: fromMaybe "" (toMaybe targetValue)
21-
, timeStamp: Just timeStamp
22-
}
18+
[ R.p_ [ R.input { onChange: Events.handler (Events.preventDefault >>> Events.merge { targetValue, timeStamp })
19+
\{ timeStamp, targetValue } -> setState \_ ->
20+
{ value: fromMaybe "" targetValue
21+
, timeStamp: Just timeStamp
22+
}
2323
, value: state.value
2424
}
2525
]
2626
, R.p_ [ R.text ("Current value = " <> show state.value) ]
27-
, R.p_ (maybe [] (\ts -> [R.text ("Changed at: " <> show ts)]) state.timeStamp)
27+
, R.p_ [ R.text ("Changed at = " <> fromMaybe "never" (show <$> state.timeStamp)) ]
2828
]
2929
}

src/React/Basic/DOM/Events.purs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,8 @@ import Prelude
3535

3636
import Control.Monad.Eff (Eff)
3737
import Control.Monad.Eff.Uncurried (EffFn1, mkEffFn1)
38-
import Data.Nullable (Nullable)
38+
import Data.Maybe (Maybe)
39+
import Data.Nullable (toMaybe)
3940
import Data.Record (delete, get, insert)
4041
import Data.Symbol (class IsSymbol, SProxy(SProxy))
4142
import React.Basic (ReactFX)
@@ -175,11 +176,11 @@ foreign import unsafeIsPropagationStopped :: SyntheticEvent -> Boolean
175176
target :: EventFn SyntheticEvent DOMNode
176177
target = EventFn \e -> (unsafeCoerce e).target
177178

178-
targetChecked :: EventFn SyntheticEvent (Nullable Boolean)
179-
targetChecked = EventFn \e -> (unsafeCoerce e).target.checked
179+
targetChecked :: EventFn SyntheticEvent (Maybe Boolean)
180+
targetChecked = EventFn \e -> toMaybe (unsafeCoerce e).target.checked
180181

181-
targetValue :: EventFn SyntheticEvent (Nullable String)
182-
targetValue = EventFn \e -> (unsafeCoerce e).target.value
182+
targetValue :: EventFn SyntheticEvent (Maybe String)
183+
targetValue = EventFn \e -> toMaybe (unsafeCoerce e).target.value
183184

184185
timeStamp :: EventFn SyntheticEvent Number
185186
timeStamp = EventFn \e -> (unsafeCoerce e).timeStamp

0 commit comments

Comments
 (0)