import { Button } from "@/src/components/ui/button"; import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, } from "@/src/components/ui/dialog"; import { useHasProjectAccess } from "@/src/features/rbac/utils/checkProjectAccess"; import { api } from "@/src/utils/api"; import { LockIcon, Trash } from "lucide-react"; import React, { useState } from "react"; type DeleteAnnotationQueueButtonProps = { projectId: string; queueId: string; }; export const DeleteAnnotationQueueButton = ({ projectId, queueId, }: DeleteAnnotationQueueButtonProps) => { const [isOpen, setIsOpen] = useState(false); const hasAccess = useHasProjectAccess({ projectId: projectId, scope: "annotationQueues:CUD", }); const utils = api.useUtils(); const mutDelete = api.annotationQueues.delete.useMutation({ onSuccess: () => { utils.annotationQueues.invalidate(); }, }); const button = ( ); return hasAccess ? ( { if (!mutDelete.isPending) { setIsOpen(open); } }} > {button} Please confirm This action cannot be undone and removes queue items attached to this queue. Scores added while annotating in this queue will not be deleted. ) : ( button ); };