diff --git a/client/src/containers/datasets/item.tsx b/client/src/containers/datasets/item.tsx index 06d5db8d..787813c4 100644 --- a/client/src/containers/datasets/item.tsx +++ b/client/src/containers/datasets/item.tsx @@ -1,9 +1,6 @@ -"use client"; - +import { useState } from "react"; import Markdown from "react-markdown"; - import Link from "next/link"; - import { useAtomValue } from "jotai"; import { useSession } from "next-auth/react"; import { LuInfo } from "react-icons/lu"; @@ -18,13 +15,15 @@ import SearchHighlight from "@/components/ui/search-highlight"; import { Switch } from "@/components/ui/switch"; const DatasetsItem = ({ id, attributes }: DatasetListResponseDataItem) => { + const [isDialogOpen, setIsDialogOpen] = useState(false); const [datasets, setDatasets] = useSyncDatasets(); const [, setLayers] = useSyncLayers(); const datasetSearch = useAtomValue(datasetSearchAtom); - const { data: user } = useSession(); const handleToogle = () => { + if (isDialogOpen) return; // Prevent toggling when the dialog is open + const lys = attributes?.layers; if (!lys) return; @@ -34,10 +33,8 @@ const DatasetsItem = ({ id, attributes }: DatasetListResponseDataItem) => { if (prev.includes(id)) { return prev.filter((d) => d !== id); } - return [...prev, id]; } - return prev; }); @@ -50,10 +47,8 @@ const DatasetsItem = ({ id, attributes }: DatasetListResponseDataItem) => { if (prev.some((id) => ids.includes(id))) { return prev.filter((id) => !ids.includes(id)); } - return [...ids, ...prev]; } - return prev; }); }; @@ -71,18 +66,17 @@ const DatasetsItem = ({ id, attributes }: DatasetListResponseDataItem) => { {attributes?.name} -
+
e.stopPropagation()}> {user && ( e.stopPropagation()} + className="inline-flex items-center justify-center whitespace-nowrap rounded-md border border-primary bg-transparent px-2.5 py-1 text-[10px] text-sm font-medium text-primary ring-offset-background transition-colors hover:bg-primary/10 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50" > Edit )} - + e.stopPropagation()}>