@@ -6,35 +6,57 @@ module ReactDOM
6
6
, renderToStaticMarkup
7
7
) where
8
8
9
- import Control.Monad.Eff (Eff ())
10
-
11
- import Data.Function (Fn4 (), runFn4 )
9
+ import Control.Monad.Eff (Eff )
10
+ import DOM (DOM )
11
+ import DOM.Node.Types (Element )
12
+ import Data.Function.Eff (runEffFn1 , EffFn4 , EffFn1 , runEffFn4 )
13
+ import Data.Function.Uncurried (runFn1 , Fn1 )
12
14
import Data.Maybe (Maybe (..))
13
-
14
- import DOM (DOM ())
15
- import DOM.Node.Types (Element ())
16
-
17
- import React (ReactElement (), ReactComponent ())
15
+ import React (ReactElement , ReactComponent )
18
16
19
17
-- | Render a React element in a document element. Returns Nothing for stateless components.
20
- render :: forall eff . ReactElement -> Element -> Eff (dom :: DOM | eff ) (Maybe ReactComponent )
21
- render = runFn4 renderFn Nothing Just
22
-
23
- foreign import renderFn
24
- :: forall eff . Fn4 (Maybe ReactComponent )
25
- (ReactComponent -> Maybe ReactComponent )
26
- ReactElement
27
- Element
28
- (Eff (dom :: DOM | eff ) (Maybe ReactComponent ))
18
+ render :: forall eff .
19
+ ReactElement -> Element -> Eff (dom :: DOM | eff ) (Maybe ReactComponent )
20
+ render = runEffFn4 renderImpl Nothing Just
29
21
30
- -- | Removes a mounted React element in a document element. Returns true if it was unmounted, false otherwise.
31
- foreign import unmountComponentAtNode :: forall eff . Element -> Eff (dom :: DOM | eff ) Boolean
22
+ -- | Removes a mounted React element in a document element.
23
+ -- | Returns true if it was unmounted, false otherwise.
24
+ unmountComponentAtNode :: forall eff . Element -> Eff (dom :: DOM | eff ) Boolean
25
+ unmountComponentAtNode = runEffFn1 unmountComponentAtNodeImpl
32
26
33
27
-- | Finds the DOM node rendered by the component.
34
- foreign import findDOMNode :: forall eff . ReactComponent -> Eff (dom :: DOM | eff ) Element
28
+ findDOMNode :: forall eff . ReactComponent -> Eff (dom :: DOM | eff ) Element
29
+ findDOMNode = runEffFn1 findDOMNodeImpl
35
30
36
31
-- | Render a React element as a string.
37
- foreign import renderToString :: ReactElement -> String
32
+ renderToString :: ReactElement -> String
33
+ renderToString = runFn1 renderToStringImpl
38
34
39
35
-- | Render a React element as static markup string without extra DOM attributes.
40
- foreign import renderToStaticMarkup :: ReactElement -> String
36
+ renderToStaticMarkup :: ReactElement -> String
37
+ renderToStaticMarkup = runFn1 renderToStaticMarkupImpl
38
+
39
+ foreign import renderImpl :: forall eff .
40
+ EffFn4
41
+ (dom :: DOM | eff )
42
+ (Maybe ReactComponent )
43
+ (ReactComponent -> Maybe ReactComponent )
44
+ ReactElement
45
+ Element
46
+ (Maybe ReactComponent )
47
+
48
+ foreign import unmountComponentAtNodeImpl :: forall eff .
49
+ EffFn1
50
+ (dom :: DOM | eff )
51
+ Element
52
+ Boolean
53
+
54
+ foreign import findDOMNodeImpl :: forall eff .
55
+ EffFn1
56
+ (dom :: DOM | eff )
57
+ ReactComponent
58
+ Element
59
+
60
+ foreign import renderToStringImpl :: Fn1 ReactElement String
61
+
62
+ foreign import renderToStaticMarkupImpl :: Fn1 ReactElement String
0 commit comments