import { apiClient } from "@/api/client"; import type { AjaxResponse } from "@/types/api.types"; import type { District, Ward } from "@/types/address.types"; const provinceChildrenCache = new Map>(); const districtChildrenCache = new Map>(); export const loadProvinceChildren = async (provinceCode: string) => { if (!provinceCode) { return []; } if (!provinceChildrenCache.has(provinceCode)) { const request = apiClient .post>("", { action: "coolviad_load_administrative_units", matp: provinceCode, }) .then((response) => response.data.data || []) .catch(() => []); provinceChildrenCache.set(provinceCode, request); } return provinceChildrenCache.get(provinceCode)!; }; export const loadDistrictChildren = async (districtCode: string) => { if (!districtCode) { return []; } if (!districtChildrenCache.has(districtCode)) { const request = apiClient .post>("", { action: "coolviad_load_administrative_units", maqh: districtCode, }) .then((response) => response.data.data || []) .catch(() => []); districtChildrenCache.set(districtCode, request); } return districtChildrenCache.get(districtCode)!; };