import { useState, useEffect } from "react"; export default function useWindowDimensions() { // На сервере инициализируем значениями по умолчанию (0 или null) const [dimensions, setDimensions] = useState({ width: typeof window !== 'undefined' ? window.innerWidth : 0, height: typeof window !== 'undefined' ? window.innerHeight : 0, }); useEffect(() => { // Этот код гарантированно выполнится ТОЛЬКО в браузере function handleResize() { setDimensions({ width: window.innerWidth, height: window.innerHeight, }); } // Устанавливаем точные размеры сразу при монтировании handleResize(); window.addEventListener('resize', handleResize); return () => window.removeEventListener('resize', handleResize); }, []); return dimensions; }