'use client';

/**
 * Zustand store for sidebar UI state.
 *
 * Manages the mobile menu open/close state so that both the TopNav
 * hamburger button and the Sidebar overlay can share the same state.
 */

import { create } from 'zustand';

export interface SidebarState {
  isMobileOpen: boolean;
  isCollapsed: boolean;
  openMobile: () => void;
  closeMobile: () => void;
  toggleMobile: () => void;
  toggleCollapse: () => void;
}

export const useSidebarStore = create<SidebarState>()((set) => ({
  isMobileOpen: false,
  isCollapsed: false,
  openMobile: () => set({ isMobileOpen: true }),
  closeMobile: () => set({ isMobileOpen: false }),
  toggleMobile: () => set((state) => ({ isMobileOpen: !state.isMobileOpen })),
  toggleCollapse: () => set((state) => ({ isCollapsed: !state.isCollapsed })),
}));
