Commit b86ef8ab authored by James Laver's avatar James Laver

readRefM, readNullableRefM

parent 1699fa41
...@@ -77,7 +77,14 @@ Not in any particular order ...@@ -77,7 +77,14 @@ Not in any particular order
* Test useImperativeHandle * Test useImperativeHandle
* Test useDebugValue * Test useDebugValue
* Test React.isValid * Test React.isValid
5. Move to `Aff` instead of `Effect` 5. Setter - a shorthand for setter functions
6. Reductor - a reducer that lives in Effect
1. Actor - a shorthand for the transformer
7. Stator - a state that lives in Effect
Ideas we're not yet convinced on:
* Move to `Aff` instead of `Effect` (not currently convinced)
## Changelog ## Changelog
......
...@@ -151,7 +151,7 @@ let additions = ...@@ -151,7 +151,7 @@ let additions =
, "spec-mocha" , "spec-mocha"
, "unsafe-coerce" , "unsafe-coerce"
] ]
"https://github.com/irresponsible/purescript-dom-simple" "https://github.com/poorscript/purescript-dom-simple"
"v0.2.1" "v0.2.1"
, ffi-simple = , ffi-simple =
mkPackage mkPackage
...@@ -162,8 +162,8 @@ let additions = ...@@ -162,8 +162,8 @@ let additions =
, "nullable" , "nullable"
, "unsafe-coerce" , "unsafe-coerce"
] ]
"https://github.com/irresponsible/purescript-ffi-simple" "https://github.com/poorscript/purescript-ffi-simple"
"v0.2.4" "v0.2.5"
, inflection = , inflection =
mkPackage mkPackage
[ "functions" ] [ "functions" ]
......
...@@ -14,7 +14,7 @@ module Reactix.React ...@@ -14,7 +14,7 @@ module Reactix.React
, staticComponent, hooksComponent , staticComponent, hooksComponent
, fragment , fragment
, Ref, createRef, readRef, readNullableRef, setRef , Ref, createRef, readRef, readRefM, readNullableRef, readNullableRefM, setRef
, isValid , isValid
...@@ -138,7 +138,7 @@ instance monoidElement :: Monoid Element where ...@@ -138,7 +138,7 @@ instance monoidElement :: Monoid Element where
-- | Renders a React Element to a real Element -- | Renders a React Element to a real Element
render :: Element -> DOM.Element -> Effect Unit render :: Element -> DOM.Element -> Effect Unit
render e d = delay unit $ \_ -> reactDOM ... "render" $ args2 e d render e d = delay unit $ \_ -> pure $ reactDOM ... "render" $ args2 e d
createPortal :: Array Element -> DOM.Element -> Element createPortal :: Array Element -> DOM.Element -> Element
createPortal es e = reactDOM ... "createPortal" $ args2 es e createPortal es e = reactDOM ... "createPortal" $ args2 es e
...@@ -206,9 +206,15 @@ createRef _ = react ... "createRef" $ [] ...@@ -206,9 +206,15 @@ createRef _ = react ... "createRef" $ []
readRef :: forall r. Ref r -> r readRef :: forall r. Ref r -> r
readRef r = r .. "current" readRef r = r .. "current"
readRefM :: forall m. Monad m -> Ref r -> m r
readRefM r = delay r (pure <<< readRef)
readNullableRef :: forall r. Ref (Nullable r) -> Maybe r readNullableRef :: forall r. Ref (Nullable r) -> Maybe r
readNullableRef r = toMaybe $ r .. "current" readNullableRef r = toMaybe $ r .. "current"
readNullableRefM :: forall r. Ref (Nullable r) -> Effect (Maybe r)
readNullableRefM r = delay r (pure <<< readNullableRef)
setRef :: forall r. Ref r -> r -> Effect Unit setRef :: forall r. Ref r -> r -> Effect Unit
setRef r v = delay unit $ \_ -> (pure $ r .= "current" $ v) *> pure unit setRef r v = delay unit $ \_ -> (pure $ r .= "current" $ v) *> pure unit
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment