From 32c7419d2c9a7091c50abe6201e127037ad2ab61 Mon Sep 17 00:00:00 2001 From: Marcin Szamotulski Date: Sat, 30 Sep 2017 12:46:39 +0200 Subject: [PATCH 1/2] Added refToNode https://github.com/purescript-contrib/purescript-react/pull/100 --- src/ReactDOM.purs | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/ReactDOM.purs b/src/ReactDOM.purs index d3c7afd..39953bd 100644 --- a/src/ReactDOM.purs +++ b/src/ReactDOM.purs @@ -4,15 +4,18 @@ module ReactDOM , findDOMNode , renderToString , renderToStaticMarkup + , refToNode ) where import Control.Monad.Eff (Eff) import Control.Monad.Eff.Uncurried (runEffFn1, EffFn4, EffFn1, runEffFn4) +import DOM (DOM) +import DOM.Node.Types (Element, Node) import Data.Function.Uncurried (runFn1, Fn1) import Data.Maybe (Maybe(..)) -import DOM (DOM) -import DOM.Node.Types (Element) -import React (ReactElement, ReactComponent) +import Data.Nullable (toMaybe) +import React (ReactElement, ReactComponent, Ref) +import Unsafe.Coerce (unsafeCoerce) -- | Render a React element in a document element. Returns Nothing for stateless components. render @@ -66,3 +69,6 @@ foreign import findDOMNodeImpl foreign import renderToStringImpl :: Fn1 ReactElement String foreign import renderToStaticMarkupImpl :: Fn1 ReactElement String + +refToNode :: Ref -> Maybe Node +refToNode ref = toMaybe (unsafeCoerce ref) From 371898dffbf464ff06199f6206c1125262b8d65a Mon Sep 17 00:00:00 2001 From: Marcin Szamotulski Date: Sat, 30 Sep 2017 19:24:37 +0200 Subject: [PATCH 2/2] refToNode :: Nullable Ref -> Maybe Node https://github.com/purescript-contrib/purescript-react/pull/100/commits/1b0d54244fc5e9f48ad2a7b075cf2654e0c0251c --- src/ReactDOM.purs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/ReactDOM.purs b/src/ReactDOM.purs index 39953bd..0ead509 100644 --- a/src/ReactDOM.purs +++ b/src/ReactDOM.purs @@ -13,7 +13,7 @@ import DOM (DOM) import DOM.Node.Types (Element, Node) import Data.Function.Uncurried (runFn1, Fn1) import Data.Maybe (Maybe(..)) -import Data.Nullable (toMaybe) +import Data.Nullable (Nullable, toMaybe) import React (ReactElement, ReactComponent, Ref) import Unsafe.Coerce (unsafeCoerce) @@ -70,5 +70,8 @@ foreign import renderToStringImpl :: Fn1 ReactElement String foreign import renderToStaticMarkupImpl :: Fn1 ReactElement String -refToNode :: Ref -> Maybe Node -refToNode ref = toMaybe (unsafeCoerce ref) +refToNode :: Nullable Ref -> Maybe Node +refToNode ref = toMaybe (coerce ref) + where + coerce :: Nullable Ref -> Nullable Node + coerce = unsafeCoerce