diff --git a/src/components/PlaceholderWithoutTracking.jsx b/src/components/PlaceholderWithoutTracking.jsx index 2d2aa4e..3502d49 100644 --- a/src/components/PlaceholderWithoutTracking.jsx +++ b/src/components/PlaceholderWithoutTracking.jsx @@ -32,7 +32,7 @@ class PlaceholderWithoutTracking extends React.Component { } isPlaceholderInViewport() { - if (!this.placeholder) { + if (typeof window === 'undefined' || !this.placeholder) { return false; } diff --git a/src/hoc/trackWindowScroll.js b/src/hoc/trackWindowScroll.js index afa12c6..b4c20dc 100644 --- a/src/hoc/trackWindowScroll.js +++ b/src/hoc/trackWindowScroll.js @@ -18,18 +18,30 @@ const trackWindowScroll = (BaseComponent) => { this.state = { scrollPosition: { - x: window.scrollX || window.pageXOffset, - y: window.scrollY || window.pageYOffset, + x: (typeof window === 'undefined' ? + 0 : + (window.scrollX || window.pageXOffset) + ), + y: (typeof window === 'undefined' ? + 0 : + (window.scrollY || window.pageYOffset) + ), }, }; } componentDidMount() { + if (typeof window == 'undefined') { + return; + } window.addEventListener('scroll', this.delayedScroll); window.addEventListener('resize', this.delayedScroll); } componentWillUnmount() { + if (typeof window === 'undefined') { + return; + } window.removeEventListener('scroll', this.delayedScroll); window.removeEventListener('resize', this.delayedScroll); } @@ -37,8 +49,14 @@ const trackWindowScroll = (BaseComponent) => { onChangeScroll() { this.setState({ scrollPosition: { - x: window.scrollX || window.pageXOffset, - y: window.scrollY || window.pageYOffset, + x: (typeof window == 'undefined' ? + 0 : + (window.scrollX || window.pageXOffset) + ), + y: (typeof window === 'undefined' ? + 0 : + (window.scrollY || window.pageYOffset) + ), }, }); }