File tree 5 files changed +17
-6
lines changed
5 files changed +17
-6
lines changed Original file line number Diff line number Diff line change 1
1
all : node_modules
2
2
purs compile src/* .purs ' ../../src/**/*.purs' ' ../../bower_components/purescript-*/src/**/*.purs'
3
- purs bundle output/* /* .js > output/bundle.js
4
- echo ' PS.Main.main();' >> output/bundle.js
3
+ purs bundle -m Main --main Main output/* /* .js > output/bundle.js
5
4
node_modules/.bin/browserify output/bundle.js -o html/index.js
6
5
7
6
node_modules :
Original file line number Diff line number Diff line change 1
1
all : node_modules
2
2
purs compile src/* .purs ' ../../src/**/*.purs' ' ../../bower_components/purescript-*/src/**/*.purs'
3
- purs bundle output/* /* .js > output/bundle.js
4
- echo ' PS.Main.main();' >> output/bundle.js
3
+ purs bundle -m Main --main Main output/* /* .js > output/bundle.js
5
4
node_modules/.bin/browserify output/bundle.js -o html/index.js
6
5
7
6
node_modules :
Original file line number Diff line number Diff line change 1
1
all : node_modules
2
2
purs compile src/* .purs ' ../../src/**/*.purs' ' ../../bower_components/purescript-*/src/**/*.purs'
3
- purs bundle output/* /* .js > output/bundle.js
4
- echo ' PS.Main.main();' >> output/bundle.js
3
+ purs bundle -m Main --main Main output/* /* .js > output/bundle.js
5
4
node_modules/.bin/browserify output/bundle.js -o html/index.js
6
5
7
6
node_modules :
Original file line number Diff line number Diff line change @@ -18,6 +18,10 @@ exports.findDOMNode_ = function(instance) {
18
18
return ReactDOM . findDOMNode ( instance ) ;
19
19
} ;
20
20
21
+ exports . createPortal_ = function ( jsx , node ) {
22
+ return ReactDOM . createPortal ( jsx , node ) ;
23
+ } ;
24
+
21
25
exports . mergeStyles = function ( styles ) {
22
26
return Object . assign . apply ( null , [ { } ] . concat ( styles ) ) ;
23
27
} ;
Original file line number Diff line number Diff line change @@ -13,6 +13,7 @@ module React.Basic.DOM
13
13
, hydrate'
14
14
, unmount
15
15
, findDOMNode
16
+ , createPortal
16
17
, text
17
18
, css
18
19
, mergeStyles
@@ -22,6 +23,7 @@ module React.Basic.DOM
22
23
import Prelude
23
24
24
25
import Data.Either (Either )
26
+ import Data.Function.Uncurried (Fn2 , runFn2 )
25
27
import Data.Maybe (Maybe (..))
26
28
import Data.Nullable (Nullable , toMaybe )
27
29
import Effect (Effect )
@@ -98,6 +100,14 @@ findDOMNode instance_ = try do
98
100
-- | Warning: Relies on `ReactDOM.findDOMNode` which may throw exceptions
99
101
foreign import findDOMNode_ :: EffectFn1 ComponentInstance (Nullable Node )
100
102
103
+ -- | Divert a render tree into a separate DOM node. The node's
104
+ -- | content will be overwritten and managed by React, similar
105
+ -- | to `render` and `hydrate`.
106
+ createPortal :: JSX -> Element -> JSX
107
+ createPortal = runFn2 createPortal_
108
+
109
+ foreign import createPortal_ :: Fn2 JSX Element JSX
110
+
101
111
-- | Create a text node.
102
112
text :: String -> JSX
103
113
text = unsafeCoerce
You can’t perform that action at this time.
0 commit comments