TelegramPWA/src/hooks/useWindowSize.ts
2021-07-07 18:38:39 +03:00

26 lines
602 B
TypeScript

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