From d1ff89db13ec00a2300791901943bdfe689429b7 Mon Sep 17 00:00:00 2001 From: Brian Stone Date: Wed, 8 Mar 2017 18:34:15 -0500 Subject: [PATCH 1/4] Do not render "0" when parent height and width are both 0. --- index.jsx | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/index.jsx b/index.jsx index 35f3ae5..8dd47cf 100644 --- a/index.jsx +++ b/index.jsx @@ -168,13 +168,14 @@ module.exports = function Dimensions ({ } return (
- {(containerWidth || containerHeight) && - + /> + : null }
) From a147ffde1d855335055a1943164e1c6727e1051d Mon Sep 17 00:00:00 2001 From: Chad Sheets Date: Sat, 20 May 2017 11:17:14 -0700 Subject: [PATCH 2/4] updated element-resize-event --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 5899abb..0cab422 100644 --- a/package.json +++ b/package.json @@ -49,7 +49,7 @@ "react-dom": "^0.14.0 || ^15.0.0" }, "dependencies": { - "element-resize-event": "^2.0.4", + "element-resize-event": "^2.0.8", "lodash.debounce": "^4.0.6" } } From b2e0cccb5814ae8f5bbb023fd7f8b0d41db59a1e Mon Sep 17 00:00:00 2001 From: Chad Sheets Date: Sat, 20 May 2017 11:26:12 -0700 Subject: [PATCH 3/4] unbind event listener --- index.jsx | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/index.jsx b/index.jsx index 8dd47cf..c8ec048 100644 --- a/index.jsx +++ b/index.jsx @@ -1,6 +1,7 @@ const _debounce = require('lodash.debounce') const React = require('react') const onElementResize = require('element-resize-event') +const unbind = require('element-resize-event').unbind function defaultGetDimensions (element) { return [element.clientWidth, element.clientHeight] @@ -139,9 +140,12 @@ module.exports = function Dimensions ({ } componentWillUnmount () { - this.getWindow().removeEventListener('resize', this.onResize) - // TODO: remote element-resize-event listener. - // pending https://github.com/KyleAMathews/element-resize-event/issues/2 + this._parent = this.refs.wrapper.parentNode + if (elementResize) { + unbind(this._parent) + } else { + this.getWindow().removeEventListener('resize', this.onResize) + } } /** From 43dd1523f5c7c20394d1f414500628578da99f1e Mon Sep 17 00:00:00 2001 From: Jeremiah Simonsen Date: Tue, 25 Jul 2017 13:06:46 -0400 Subject: [PATCH 4/4] Support containerStyle option as in previous release --- index.jsx | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/index.jsx b/index.jsx index c8ec048..da8db5e 100644 --- a/index.jsx +++ b/index.jsx @@ -3,6 +3,13 @@ const React = require('react') const onElementResize = require('element-resize-event') const unbind = require('element-resize-event').unbind +const defaultContainerStyle = { + width: '100%', + height: '100%', + padding: 0, + border: 0 +} + function defaultGetDimensions (element) { return [element.clientWidth, element.clientHeight] } @@ -74,11 +81,12 @@ function defaultGetDimensions (element) { * module.exports = Dimensions()(MyComponent) // Enhanced component * */ -module.exports = function Dimensions ({ +export default function Dimensions ({ getDimensions = defaultGetDimensions, debounce = 0, debounceOpts = {}, - elementResize = false + elementResize = false, + containerStyle = defaultContainerStyle } = {}) { return (ComposedComponent) => { return class DimensionsHOC extends React.Component { @@ -165,13 +173,9 @@ module.exports = function Dimensions ({ // only trigger a warning about the wrapper div if we already have a reference to it console.warn('Wrapper div has no height or width, try overriding style with `containerStyle` option') } - const wrapperStyle = { - overflow: 'visible', - height: 0, - width: 0 - } + return ( -
+
{(containerWidth || containerHeight) ?