From 64a80a64da183f64bda35224175c8e94a656876e Mon Sep 17 00:00:00 2001 From: Federico Zivolo Date: Thu, 15 Aug 2019 12:26:40 +0200 Subject: [PATCH] feat: don't mutate windowSize object if sizes don't change --- index.js | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/index.js b/index.js index effa201..61fd73a 100644 --- a/index.js +++ b/index.js @@ -1,16 +1,19 @@ 'use strict'; -let { useState, useEffect } = require('react'); +let { useState, useEffect, useMemo } = require('react'); -function getSize() { - return { +function useWindowSize() { + const getSize = useMemo(() => () => ({ innerHeight: window.innerHeight, innerWidth: window.innerWidth, outerHeight: window.outerHeight, outerWidth: window.outerWidth, - }; -} - -function useWindowSize() { + }), [ + window.innerHeight, + window.innerWidth, + window.outerHeight, + window.outerWidth, + ]); + let [windowSize, setWindowSize] = useState(getSize()); function handleResize() {