Skip to content

Commit a74cafd

Browse files
authored
Merge pull request #3 from spicydonuts/master
Updates for psc 0.9.1
2 parents 03b4c05 + 26ff450 commit a74cafd

File tree

3 files changed

+57
-52
lines changed

3 files changed

+57
-52
lines changed

bower.json

+3-2
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@
1616
"url": "git://github.com/purescript-contrib/purescript-react-dom.git"
1717
},
1818
"dependencies": {
19-
"purescript-dom": "~0.2.15",
20-
"purescript-react": "~0.7.0"
19+
"purescript-dom": "^1.0.0",
20+
"purescript-react": "~0.7.1",
21+
"purescript-eff-functions": "^0.1.2"
2122
}
2223
}

src/ReactDOM.js

+10-28
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,16 @@
11
/* global exports */
22
"use strict";
33

4-
// module ReactDOM
4+
var ReactDOM = require("react-dom");
5+
var ReactDOMServer = require("react-dom/server");
56

6-
var ReactDOM = require('react-dom');
7+
exports.renderImpl = function (nothing, just, element, container) {
8+
var result = ReactDOM.render(element, container);
9+
return result === null ? nothing : just(result);
10+
};
711

8-
var ReactDOMServer = require('react-dom/server');
12+
exports.unmountComponentAtNodeImpl = ReactDOM.unmountComponentAtNode;
13+
exports.findDOMNodeImpl = ReactDOM.findDOMNode;
914

10-
function renderFn(nothing, just, element, container) {
11-
return function(){
12-
var result = ReactDOM.render(element, container);
13-
return result === null ? nothing : just(result);
14-
}
15-
}
16-
exports.renderFn = renderFn;
17-
18-
function unmountComponentAtNode(container) {
19-
return function(){
20-
return ReactDOM.unmountComponentAtNode(container);
21-
};
22-
}
23-
exports.unmountComponentAtNode = unmountComponentAtNode;
24-
25-
function findDOMNode(component) {
26-
return function(){
27-
return ReactDOM.findDOMNode(component);
28-
};
29-
}
30-
exports.findDOMNode = findDOMNode;
31-
32-
exports.renderToString = ReactDOMServer.renderToString;
33-
34-
exports.renderToStaticMarkup = ReactDOMServer.renderToStaticMarkup;
15+
exports.renderToStringImpl = ReactDOMServer.renderToString;
16+
exports.renderToStaticMarkupImpl = ReactDOMServer.renderToStaticMarkup;

src/ReactDOM.purs

+44-22
Original file line numberDiff line numberDiff line change
@@ -6,35 +6,57 @@ module ReactDOM
66
, renderToStaticMarkup
77
) where
88

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)
1214
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)
1816

1917
-- | 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
2921

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
3226

3327
-- | 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
3530

3631
-- | Render a React element as a string.
37-
foreign import renderToString :: ReactElement -> String
32+
renderToString :: ReactElement -> String
33+
renderToString = runFn1 renderToStringImpl
3834

3935
-- | 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

Comments
 (0)