import { EllipsisVertical, RefreshCcw, Trash, Edit } from "lucide-react"; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, } from "../ui/dropdown-menu"; import { Button } from "../ui/button"; import { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, } from "../ui/alert-dialog"; import { useState } from "react"; import { useFetcher } from "@remix-run/react"; import { EditSpaceDialog } from "./edit-space-dialog.client"; interface SpaceOptionsProps { id: string; name?: string; description?: string | null; } export const SpaceOptions = ({ id, name, description }: SpaceOptionsProps) => { const [deleteDialogOpen, setDeleteDialogOpen] = useState(false); const [resetSpace, setResetSpace] = useState(false); const [editDialogOpen, setEditDialogOpen] = useState(false); const deleteFetcher = useFetcher(); const resetFetcher = useFetcher(); const handleDelete = () => { deleteFetcher.submit({ method: "DELETE", action: `/api/v1/space/${id}`, encType: "application/json", }); setDeleteDialogOpen(false); }; const handleReset = () => { resetFetcher.submit({ method: "POST", action: `/api/v1/space/${id}/reset`, encType: "application/json", }); setResetSpace(false); }; const handleEditSuccess = () => { // Revalidate the page data to show updated space info // revalidator.revalidate(); }; return ( <> setEditDialogOpen(true)}> setResetSpace(true)}> setDeleteDialogOpen(true)}> Delete space Are you sure you want to delete this space? This action cannot be undone. Cancel Continue Delete space Are you sure you want to reset this space? This action cannot be undone. Cancel Continue {/* Edit Space Dialog */} ); };