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
318318
319319Create a stateless React class.
320320
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+
321329#### ` handle `
322330
323331``` purescript
Original file line number Diff line number Diff line change @@ -19,15 +19,22 @@ function getRefs(this_) {
1919}
2020exports . getRefs = getRefs ;
2121
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+
2233function getChildren ( this_ ) {
2334 return function ( ) {
2435 var children = this_ . props . children ;
2536
26- var result = [ ] ;
27-
28- React . Children . forEach ( children , function ( child ) {
29- result . push ( child ) ;
30- } ) ;
37+ var result = childrenToArray ( children ) ;
3138
3239 return result ;
3340 } ;
Original file line number Diff line number Diff line change @@ -53,6 +53,7 @@ module React
5353
5454 , createClass
5555 , createClassStateless
56+ , createClassStateless'
5657 , createElement
5758 , createElementDynamic
5859 , createElementTagName
@@ -296,6 +297,10 @@ foreign import createClass :: forall props state eff. ReactSpec props state eff
296297createClassStateless :: forall props . (props -> ReactElement ) -> ReactClass props
297298createClassStateless = unsafeCoerce
298299
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+
299304-- | Create an event handler.
300305foreign import handle :: forall eff ev props state result . (ev -> EventHandlerContext eff props state result ) -> EventHandler ev
301306
@@ -313,3 +318,9 @@ foreign import createElementTagNameDynamic :: forall props. TagName -> props ->
313318
314319-- | Create a factory from a React class.
315320foreign 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