import { Button } from "@/src/components/ui/button"; import { useHasProjectAccess } from "@/src/features/rbac/utils/checkProjectAccess"; import { api } from "@/src/utils/api"; import { Trash } from "lucide-react"; import { useState } from "react"; import { Popover, PopoverContent, PopoverTrigger, } from "@/src/components/ui/popover"; import useProjectIdFromURL from "@/src/hooks/useProjectIdFromURL"; export function DeletePrompt({ promptName }: { promptName: string }) { const projectId = useProjectIdFromURL(); const utils = api.useUtils(); const [isOpen, setIsOpen] = useState(false); const [error, setError] = useState(null); const hasAccess = useHasProjectAccess({ projectId, scope: "prompts:CUD" }); const mutDeletePrompt = api.prompts.delete.useMutation({ onSuccess: () => { void utils.prompts.invalidate(); setError(null); setIsOpen(false); }, onError: (error) => { setError(error.message); }, }); return ( setIsOpen(!isOpen)}>

Please confirm

This action permanently deletes this prompt. All requests to fetch prompt{" "} {promptName} {" "} will error.

{error && (

Error:

{error}

)}
); }