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 { useRouter } from "next/router"; import useProjectIdFromURL from "@/src/hooks/useProjectIdFromURL"; import { usePostHogClientCapture } from "@/src/features/posthog-analytics/usePostHogClientCapture"; export function DeletePromptVersion({ promptVersionId, version, countVersions, }: { promptVersionId: string; version: number; countVersions: number; }) { const capture = usePostHogClientCapture(); const projectId = useProjectIdFromURL(); const utils = api.useUtils(); const router = useRouter(); const [isOpen, setIsOpen] = useState(false); const [error, setError] = useState(null); const hasAccess = useHasProjectAccess({ projectId, scope: "prompts:CUD" }); const mutDeletePromptVersion = api.prompts.deleteVersion.useMutation({ onSuccess: () => { void utils.prompts.invalidate(); setError(null); setIsOpen(false); if (countVersions > 1) { void router.replace( { pathname: router.pathname, query: { ...router.query, version: undefined }, }, undefined, { shallow: true }, ); } else { void router.push(`/project/${projectId}/prompts`); } }, onError: (error) => { setError(error.message); }, }); return ( { if (isOpen) { capture("prompt_detail:version_delete_open"); } setIsOpen(!isOpen); }} >

Please confirm

This action deletes the prompt version. Requests of version{" "} {version} of this prompt will return an error.

{error && (

Error:

{error}

)}
); }