"use client"; import { useAtom } from "jotai"; import { isOpenMapsetDialogAtom, selectedMapsetAtom } from "../../state/mapset-dialog"; import MapsetList from "./mapset-list"; import MainDialog from "./main"; import { useQueryParam, StringParam } from "use-query-params"; import { useEffect } from "react"; import { ArrowRight } from "lucide-react"; import TabSwitcher from "./tab-switcher"; import mapsetApi from "@/shared/services/mapset"; import { activeTabAtom } from "../../state/active-tab"; export default function MapsetDialog() { const [isOpenDialog, setIsOpenDialog] = useAtom(isOpenMapsetDialogAtom); const [openCatalog] = useQueryParam("open-catalog", StringParam); const [tabParam] = useQueryParam("tab", StringParam); const [mapsetIdParam] = useQueryParam("mapset-id", StringParam); const [, setSelectedMapset] = useAtom(selectedMapsetAtom); const [, setActiveTab] = useAtom(activeTabAtom); // Convert the query param to a valid tab type const initialTab = tabParam === "organization" || tabParam === "category" ? tabParam : undefined; useEffect(() => { if (isOpenDialog && !tabParam) { setActiveTab("category"); } }, [isOpenDialog, tabParam, setActiveTab]); useEffect(() => { const fetchMapset = async () => { if (mapsetIdParam) { try { const data = await mapsetApi.getMapsetById(mapsetIdParam, { skipAuth: true }); setSelectedMapset(data); setIsOpenDialog(true); } catch (error) { console.error("Error fetching mapset by ID:", error); } } else if (openCatalog === "true") { setIsOpenDialog(true); try { const response = await mapsetApi.getMapsets( { limit: 10, offset: 0, filter: JSON.stringify(["is_active=true", "status_validation=approved"]), }, { skipAuth: true } ); if (response.items && response.items.length > 0) { setSelectedMapset(response.items[0]); } } catch (error) { console.error("Error fetching mapsets for default:", error); } } }; fetchMapset(); }, [openCatalog, mapsetIdParam, setIsOpenDialog, setSelectedMapset]); return (
); }