TelegramPWA/src/hooks/useWindowSize.ts
2021-05-12 03:13:20 +03:00

27 lines
605 B
TypeScript

import { useEffect, useState } from '../lib/teact/teact';
import { IDimensions } from '../modules/helpers';
import { throttle } from '../util/schedulers';
import windowSize from '../util/windowSize';
const THROTTLE = 250;
export default () => {
const [size, setSize] = useState<IDimensions>(windowSize.get());
useEffect(() => {
const handleResize = throttle(() => {
setSize(windowSize.get());
}, THROTTLE, false);
window.addEventListener('resize', handleResize);
return () => {
window.removeEventListener('resize', handleResize);
};
}, []);
return size;
};