spacedrive/interface/hooks/useWindowSize.ts
ameer2468 19b224370e
[ENG-1615] bg intro video fixed (#2104)
* video intro bg

* test hsl

* test video bg

* run tests

* comment

* mob intro

* git glitch

* git

* webm type
2024-02-19 20:45:29 +00:00

40 lines
810 B
TypeScript

import { useEffect, useState } from 'react';
/*
A simple hook that returns the window size
*/
type hookReturn = {
width: number | null;
height: number | null;
};
export const useWindowSize = (): hookReturn => {
const [windowSize, setWindowSize] = useState<hookReturn>({
width: null,
height: null
});
useEffect(() => {
if (typeof window === 'undefined') {
return;
}
const handleResize = () => {
setWindowSize({
width: window.innerWidth,
height: window.innerHeight
});
};
window.addEventListener('load', handleResize);
window.addEventListener('resize', handleResize);
return () => {
window.removeEventListener('resize', handleResize);
window.removeEventListener('load', handleResize);
};
}, [windowSize.width, windowSize.height]);
return windowSize;
};