TelegramPWA/src/hooks/useWindowSize.ts
Alexander Zinchuk 3afcde3217 Initial commit
2021-04-09 14:11:51 +03:00

27 lines
619 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 RESIZE_TIMEOUT_MS = 250;
export default () => {
const [size, setSize] = useState<IDimensions>(windowSize.get());
useEffect(() => {
const handleResize = throttle(() => {
setSize(windowSize.get());
}, RESIZE_TIMEOUT_MS, false);
window.addEventListener('resize', handleResize);
return () => {
window.removeEventListener('resize', handleResize);
};
});
return size;
};