import { useMemo } from "react"; import { create } from "zustand"; import { getGeoData } from "@/components/lib/api"; import { get } from "http"; interface Option { id: number, name: string } interface SnStoreState { ctpv: Option[]; sgg: Option[]; fetchCtpvData: () => Promise; fetchSggData: () => Promise; } const useStore = create((set) => ({ // Define your store state and actions here ctpv: [], sgg: [], fetchCtpvData: async () => { const ctpvData = await getGeoData('/hasudo/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=hasudo%3Atb_ms_ctpv&outputFormat=application%2Fjson'); const ctpvList: Option[] = ctpvData.features .map((feature: any) => ({ id: feature.properties.mctpv_cd.trim(), name: feature.properties.mctpv_korn_nm })) .sort((a: Option, b: Option) => a.name.localeCompare(b.name, 'ko')); set({ ctpv: ctpvList }); }, fetchSggData: async () => { const sggData = await getGeoData('/hasudo/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=hasudo%3Atb_ms_sgg&outputFormat=application%2Fjson'); const sggList: Option[] = sggData.features .map((feature: any) => ({ id: feature.properties.sgg_cd, name: feature.properties.sgg_korn_nm })) .sort((a: Option, b: Option) => a.name.localeCompare(b.name, 'ko')); set({ sgg: sggList }); } })); export default useStore;