From 2d4171f3f7efcd544c797ca86aa17cb355167cbf Mon Sep 17 00:00:00 2001 From: srph Date: Fri, 12 Feb 2016 01:27:19 +0800 Subject: [PATCH 1/2] Add high-order component. This adds a additional dependencies on `omit` and `merge`. --- lib/resize.js | 33 +++++++++++++++++++++++++++++++++ package.json | 4 +++- 2 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 lib/resize.js diff --git a/lib/resize.js b/lib/resize.js new file mode 100644 index 0000000..89ebf62 --- /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('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" From b3687164718c82c46c71dde6cea63b2c2f2eebde Mon Sep 17 00:00:00 2001 From: srph Date: Fri, 12 Feb 2016 18:00:53 +0800 Subject: [PATCH 2/2] Fix required merge module name --- lib/resize.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/resize.js b/lib/resize.js index 89ebf62..33fd4fd 100644 --- a/lib/resize.js +++ b/lib/resize.js @@ -4,7 +4,7 @@ */ var React = require('react') var omit = require('lodash.omit') -var merge = require('merge') +var merge = require('lodash.merge') function resize(Component) { return React.createClass({