File tree Expand file tree Collapse file tree 3 files changed +31
-5
lines changed Expand file tree Collapse file tree 3 files changed +31
-5
lines changed Original file line number Diff line number Diff line change @@ -318,6 +318,14 @@ createClassStateless :: forall props. (props -> ReactElement) -> ReactClass prop
318
318
319
319
Create a stateless React class.
320
320
321
+ #### ` createClassStateless' `
322
+
323
+ ``` purescript
324
+ createClassStateless' :: forall props. (props -> Array ReactElement -> ReactElement) -> ReactClass props
325
+ ```
326
+
327
+ Create a stateless React class with children access.
328
+
321
329
#### ` handle `
322
330
323
331
``` purescript
Original file line number Diff line number Diff line change @@ -19,15 +19,22 @@ function getRefs(this_) {
19
19
}
20
20
exports . getRefs = getRefs ;
21
21
22
+ function childrenToArray ( children ) {
23
+ var result = [ ] ;
24
+
25
+ React . Children . forEach ( children , function ( child ) {
26
+ result . push ( child ) ;
27
+ } ) ;
28
+
29
+ return result ;
30
+ }
31
+ exports . childrenToArray = childrenToArray ;
32
+
22
33
function getChildren ( this_ ) {
23
34
return function ( ) {
24
35
var children = this_ . props . children ;
25
36
26
- var result = [ ] ;
27
-
28
- React . Children . forEach ( children , function ( child ) {
29
- result . push ( child ) ;
30
- } ) ;
37
+ var result = childrenToArray ( children ) ;
31
38
32
39
return result ;
33
40
} ;
Original file line number Diff line number Diff line change @@ -53,6 +53,7 @@ module React
53
53
54
54
, createClass
55
55
, createClassStateless
56
+ , createClassStateless'
56
57
, createElement
57
58
, createElementDynamic
58
59
, createElementTagName
@@ -296,6 +297,10 @@ foreign import createClass :: forall props state eff. ReactSpec props state eff
296
297
createClassStateless :: forall props . (props -> ReactElement ) -> ReactClass props
297
298
createClassStateless = unsafeCoerce
298
299
300
+ -- | Create a stateless React class with children access.
301
+ createClassStateless' :: forall props . (props -> Array ReactElement -> ReactElement ) -> ReactClass props
302
+ createClassStateless' k = createClassStateless \props -> k props (childrenToArray (unsafeCoerce props).children)
303
+
299
304
-- | Create an event handler.
300
305
foreign import handle :: forall eff ev props state result . (ev -> EventHandlerContext eff props state result ) -> EventHandler ev
301
306
@@ -313,3 +318,9 @@ foreign import createElementTagNameDynamic :: forall props. TagName -> props ->
313
318
314
319
-- | Create a factory from a React class.
315
320
foreign import createFactory :: forall props . ReactClass props -> props -> ReactElement
321
+
322
+ -- | Internal representation for the children elements passed to a component
323
+ foreign import data Children :: *
324
+
325
+ -- | Internal conversion function from children elements to an array of React elements
326
+ foreign import childrenToArray :: Children -> Array React.ReactElement
You can’t perform that action at this time.
0 commit comments