import { create } from "zustand";
import { devtools } from "zustand/middleware";

interface UIState {
  searchQuery: string;
  statusFilter: string;
  newMeetingDialogOpen: boolean;
  sidebarCollapsed: boolean;
  mobileSidebarOpen: boolean;

  setSearchQuery: (query: string) => void;
  setStatusFilter: (filter: string) => void;
  setNewMeetingDialogOpen: (open: boolean) => void;
  setSidebarCollapsed: (collapsed: boolean) => void;
  setMobileSidebarOpen: (open: boolean) => void;
}

export const useUIStore = create<UIState>()(
  devtools(
    (set) => ({
      searchQuery: "",
      statusFilter: "all",
      newMeetingDialogOpen: false,
      sidebarCollapsed: false,
      mobileSidebarOpen: false,

      setSearchQuery: (query) =>
        set({ searchQuery: query }, false, "ui/setSearchQuery"),

      setStatusFilter: (filter) =>
        set({ statusFilter: filter }, false, "ui/setStatusFilter"),

      setNewMeetingDialogOpen: (open) =>
        set({ newMeetingDialogOpen: open }, false, "ui/setNewMeetingDialogOpen"),

      setSidebarCollapsed: (collapsed) =>
        set({ sidebarCollapsed: collapsed }, false, "ui/setSidebarCollapsed"),

      setMobileSidebarOpen: (open) =>
        set({ mobileSidebarOpen: open }, false, "ui/setMobileSidebarOpen"),
    }),
    { name: "UIStore" }
  )
);
