| 123456789101112131415161718192021222324 |
- import { useState, useEffect } from 'react';
- const SIDEBAR_COMPACT_BREAKPOINT = 1144;
- export function useIsSidebarCompact(): boolean {
- const [isCompact, setIsCompact] = useState(() =>
- typeof window !== 'undefined' ? window.innerWidth < SIDEBAR_COMPACT_BREAKPOINT : false
- );
- useEffect(() => {
- const mediaQuery = window.matchMedia(`(max-width: ${SIDEBAR_COMPACT_BREAKPOINT - 1}px)`);
- const handleChange = (e: MediaQueryListEvent) => {
- setIsCompact(e.matches);
- };
- setIsCompact(mediaQuery.matches);
- mediaQuery.addEventListener('change', handleChange);
- return () => mediaQuery.removeEventListener('change', handleChange);
- }, []);
- return isCompact;
- }
|