From e9a66ca0b7593dfebdfa190ffd82e334b81cb97c Mon Sep 17 00:00:00 2001 From: Fedor Katurov Date: Thu, 20 Jan 2022 17:48:46 +0700 Subject: [PATCH] fixed flow covers for heroes --- src/hooks/dom/useWindowSize.ts | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/src/hooks/dom/useWindowSize.ts b/src/hooks/dom/useWindowSize.ts index 315c2a47..36108525 100644 --- a/src/hooks/dom/useWindowSize.ts +++ b/src/hooks/dom/useWindowSize.ts @@ -1,10 +1,20 @@ -import { useMemo } from 'react'; +import { useCallback, useEffect, useMemo, useState } from 'react'; -export const useWindowSize = () => - useMemo(() => { - if (typeof window === 'undefined') { - return { innerWidth: 0, innerHeight: 0 }; - } +export const useWindowSize = () => { + const [size, setSize] = useState({ innerWidth: 0, innerHeight: 0 }); - return { innerWidth: window.innerWidth, innerHeight: window.innerHeight }; - }, []); + const onResize = useCallback( + () => setSize({ innerWidth: window.innerWidth, innerHeight: window.innerHeight }), + [] + ); + + useEffect(() => { + onResize(); + + window.addEventListener('resize', onResize); + + return () => window.removeEventListener('resize', onResize); + }); + + return size; +};