11module ReactDOM
22 ( render
3+ , hydrate
34 , unmountComponentAtNode
45 , findDOMNode
56 , renderToString
67 , renderToStaticMarkup
78 ) where
89
9- import Effect ( Effect )
10- import Effect.Uncurried ( runEffectFn1 , EffectFn4 , EffectFn1 , runEffectFn4 )
10+ import Prelude
11+
1112import Data.Function.Uncurried (runFn1 , Fn1 )
12- import Data.Maybe (Maybe (..))
13+ import Data.Maybe (Maybe )
14+ import Data.Nullable (Nullable , toMaybe )
15+ import Effect (Effect )
16+ import Effect.Uncurried (EffectFn1 , EffectFn2 , runEffectFn1 , runEffectFn2 )
1317import React (ReactElement , ReactComponent )
1418import Web.DOM.Element (Element )
1519
@@ -18,7 +22,14 @@ render
1822 :: ReactElement
1923 -> Element
2024 -> Effect (Maybe ReactComponent )
21- render = runEffectFn4 renderImpl Nothing Just
25+ render rEl el = toMaybe <$> runEffectFn2 renderImpl rEl el
26+
27+ -- | Same as `render`, but is used to hydrate a container whose HTML contents were rendered on the server.
28+ hydrate
29+ :: ReactElement
30+ -> Element
31+ -> Effect (Maybe ReactComponent )
32+ hydrate rEl el = toMaybe <$> runEffectFn2 hydrateImpl rEl el
2233
2334-- | Removes a mounted React element in a document element.
2435-- | Returns true if it was unmounted, false otherwise.
@@ -38,12 +49,16 @@ renderToStaticMarkup :: ReactElement -> String
3849renderToStaticMarkup = runFn1 renderToStaticMarkupImpl
3950
4051foreign import renderImpl
41- :: EffectFn4
42- (Maybe ReactComponent )
43- (ReactComponent -> Maybe ReactComponent )
52+ :: EffectFn2
53+ ReactElement
54+ Element
55+ (Nullable ReactComponent )
56+
57+ foreign import hydrateImpl
58+ :: EffectFn2
4459 ReactElement
4560 Element
46- (Maybe ReactComponent )
61+ (Nullable ReactComponent )
4762
4863foreign import unmountComponentAtNodeImpl
4964 :: EffectFn1
0 commit comments