import { create } from 'zustand';
import { persist, createJSONStorage } from 'zustand/middleware';

export type SettingsTab = 'config';

interface SettingsStore {
  isOpen: boolean;
  activeTab: SettingsTab;
  eventCatalogPath: string;
  toggleModal: () => void;
  setModalOpen: (open: boolean) => void;
  setActiveTab: (tab: SettingsTab) => void;
  setEventCatalogPath: (path: string) => void;
}

export const useSettingsStore = create<SettingsStore>()(
  persist(
    (set) => ({
      isOpen: false,
      activeTab: 'config',
      eventCatalogPath: '',
      toggleModal: () => set((state) => ({ isOpen: !state.isOpen })),
      setModalOpen: (open: boolean) => set({ isOpen: open }),
      setActiveTab: (tab: SettingsTab) => set({ activeTab: tab }),
      setEventCatalogPath: (path: string) => set({ eventCatalogPath: path }),
    }),
    {
      name: 'settings-storage',
      storage: createJSONStorage(() => localStorage),
    }
  )
);