diff --git a/lib/resize.js b/lib/resize.js new file mode 100644 index 0000000..33fd4fd --- /dev/null +++ b/lib/resize.js @@ -0,0 +1,33 @@ +/** + * resize + * High-order component for WindowResizeListener + */ +var React = require('react') +var omit = require('lodash.omit') +var merge = require('lodash.merge') + +function resize(Component) { + return React.createClass({ + getInitialState: function() { + windowHeight: 0, + windowWidth: 0 + }, + + render: function render() { + var children = this.props.children; + var props = omit(this.props, ['children']); + + return ( + + {React.cloneElement(children, merge({}, props, this.state))} + + ) + }, + + onResize: function(size) { + this.setState(size) + } + }) +} + +exports.default = exports.resize = resize; diff --git a/package.json b/package.json index b333399..5f44dde 100644 --- a/package.json +++ b/package.json @@ -36,7 +36,9 @@ "zuul": "^3.7.1" }, "dependencies": { - "lodash.debounce": "^3.1.1" + "lodash.debounce": "^3.1.1", + "lodash.merge": "^4.1.0", + "lodash.omit": "^4.0.2" }, "peerDependencies": { "react": "^0.14.0"