import useReportTab, { type Folder, type ReportDataFile } from '../(map-layout)/map/searchModal/useReportTab'; import { create } from 'zustand'; import { getDcData } from '@/components/lib/api'; interface useReportTabStoreType { isOpen: boolean; files: ReportDataFile[]; dcTree: Folder[]; dcFiles: ReportDataFile[]; setIsOpen: (open: boolean) => void; setFiles: (files: ReportDataFile[]) => void; fetchDcTree: (clsfSystmNm: string) => void; fetchDcFiles: (clsfSystmNm: string) => void; } export const useReportTabStore = create((set, get) => ({ isOpen: false, files: [], dcTree: [], dcFiles: [], setIsOpen: (open: boolean) => set({ isOpen: open }), setFiles: (files: ReportDataFile[]) => set({ files }), fetchDcTree: async (clsfSystmNm: string) => { const { dcTree } = get(); try { const result = await getDcData("/api/v1/dc/clsf?clsfSystmNm=" + clsfSystmNm); if (result && JSON.stringify(result) !== JSON.stringify(dcTree)) set({ dcTree: result }); } catch (error) { console.error('Failed to fetch DC tree:', error); } }, fetchDcFiles: async (clsfSystmNm: string) => { const { getDcFiles } = useReportTab(); const { dcFiles } = get(); try { const result = await getDcFiles(clsfSystmNm); if (result && JSON.stringify(result) !== JSON.stringify(dcFiles)) set({ dcFiles: result }); } catch (error) { console.error('Failed to fetch DC files:', error); } } }));