2024-07-24 17:55:51 +03:00

40 lines
1.2 KiB
JavaScript

/*
Парус 8 - Панели мониторинга - Редактор настройки регламентированного отчёта
Пользовательские хуки
*/
//---------------------
//Подключение библиотек
//---------------------
import { useState, useLayoutEffect } from "react"; //Классы React
//-----------
//Тело модуля
//-----------
//Хук для отработки изменений ширины и высоты рабочей области окна
const useWindowResize = () => {
//Состояние размера рабочей области
const [size, setSize] = useState([0, 0]);
//При изменении размера
useLayoutEffect(() => {
const updateSize = () => {
setSize([document.documentElement.clientWidth, document.documentElement.clientHeight]);
};
window.addEventListener("resize", updateSize);
updateSize();
return () => window.removeEventListener("resize", updateSize);
}, []);
//Вернём размеры
return size;
};
//----------------
//Интерфейс модуля
//----------------
export { useWindowResize };