22var React = require ( 'react' ) ;
33var Draggable = require ( 'react-draggable' ) ;
44var PureRenderMixin = require ( 'react/lib/ReactComponentWithPureRenderMixin' ) ;
5+ var assign = require ( 'object-assign' ) ;
6+ var cloneWithProps = require ( 'react/lib/cloneWithProps' ) ;
57
68var Resizable = module . exports = React . createClass ( {
79 displayName : 'Resizable' ,
810 mixins : [ PureRenderMixin ] ,
911
1012 propTypes : {
11- children : React . PropTypes . element ,
13+ // Require that one and only one child be present.
14+ children : React . PropTypes . element . isRequired ,
1215 // Functions
1316 onResizeStop : React . PropTypes . func ,
1417 onResizeStart : React . PropTypes . func ,
@@ -57,8 +60,8 @@ var Resizable = module.exports = React.createClass({
5760 // We are then defining its children as:
5861 // Its original children (resizable's child's children), and
5962 // A draggable handle.
60- return React . cloneElement ( p . children , p ,
61- [
63+ return cloneWithProps ( p . children , assign ( { } , p , {
64+ children : [
6265 p . children . props . children ,
6366 < Draggable
6467 { ...p . draggableOpts }
@@ -69,12 +72,11 @@ var Resizable = module.exports = React.createClass({
6972 onDrag = { this . resizeHandler ( 'onResize' ) }
7073 minConstraints = { this . minConstraints ( ) }
7174 maxConstraints = { this . maxConstraints ( ) }
72- key = "draggable"
7375 >
7476 < span className = "react-resizable-handle" />
7577 </ Draggable >
7678 ]
77- ) ;
79+ } ) ) ;
7880 }
7981} ) ;
8082
0 commit comments