import { useState, useEffect, useCallback } from 'react';
import { useLocation } from 'react-router-dom';
import { useUIStore } from '../store/useUIStore';
import { DEFAULT_EXPANDED_GROUPS } from '../components/layout/constants';

export const useSidebar = () => {
  const location = useLocation();
  const { isSidebarOpen, setSidebarOpen } = useUIStore();
  const [expandedGroups, setExpandedGroups] = useState<Record<string, boolean>>(DEFAULT_EXPANDED_GROUPS);

  const toggleGroup = useCallback((groupKey: string) => {
    setExpandedGroups(prev => ({ ...prev, [groupKey]: !prev[groupKey] }));
  }, []);

  useEffect(() => {
    if (window.innerWidth < 1024) {
      setSidebarOpen(false);
    }
  }, [location, setSidebarOpen]);

  return {
    isSidebarOpen,
    setSidebarOpen,
    expandedGroups,
    toggleGroup
  };
};
