Files
Homarr/src/hooks/use-resize.ts

24 lines
722 B
TypeScript
Raw Normal View History

2022-12-04 17:36:30 +01:00
import { useCallback, useEffect, useState, MutableRefObject } from 'react';
export const useResize = (myRef: MutableRefObject<HTMLDivElement | null>) => {
const [width, setWidth] = useState(0);
const [height, setHeight] = useState(0);
const handleResize = useCallback(() => {
setWidth(myRef.current?.offsetWidth ?? 0);
setHeight(myRef.current?.offsetHeight ?? 0);
}, [myRef]);
useEffect(() => {
window.addEventListener('load', handleResize);
window.addEventListener('resize', handleResize);
return () => {
window.removeEventListener('load', handleResize);
window.removeEventListener('resize', handleResize);
};
}, [myRef, handleResize]);
return { width, height };
};