From 2e3adc86a9ec9cab759b1ca22dcafcc1f2b4e6e1 Mon Sep 17 00:00:00 2001 From: evgeniywas Date: Sun, 6 Aug 2023 15:29:15 +0100 Subject: [PATCH] RC-7: create custom hook useWindowDimensions --- src/app/hooks/index.js | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 src/app/hooks/index.js diff --git a/src/app/hooks/index.js b/src/app/hooks/index.js new file mode 100644 index 0000000..68e6a53 --- /dev/null +++ b/src/app/hooks/index.js @@ -0,0 +1,20 @@ +import { useState, useEffect } from 'react'; + +export function useWindowDimensions() { + const getWindowDimensions = () => { + const { innerWidth: width, innerHeight: height } = window; + + return { width, height }; + }; + const [windowDimensions, setWindowDimensions] = useState(getWindowDimensions()); + + useEffect(() => { + const onRecize = () => setWindowDimensions(getWindowDimensions()); + + window.addEventListener('resize', onRecize); + + return () => window.removeEventListener('resize', onRecize); + }, []); + + return windowDimensions; +}