import { Trash } from "lucide-react"; 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 { usePostHogClientCapture } from "@/src/features/posthog-analytics/usePostHogClientCapture"; import { api } from "@/src/utils/api"; import React, { useState } from "react"; import { useRouter } from "next/router"; export const DeleteDatasetRunButton = ({ projectId, datasetRunId, redirectUrl, datasetId, }: { projectId: string; datasetRunId: string; redirectUrl?: string; datasetId: string; }) => { const [isDialogOpen, setIsDialogOpen] = useState(false); const capture = usePostHogClientCapture(); const hasAccess = useHasProjectAccess({ projectId: projectId, scope: "datasets:CUD", }); const utils = api.useUtils(); const router = useRouter(); const mutDelete = api.datasets.deleteDatasetRuns.useMutation({ onSuccess: () => { redirectUrl ? router.push(redirectUrl) : utils.datasets.invalidate(); }, }); const button = ( ); return hasAccess ? ( { if (!mutDelete.isPending) { setIsDialogOpen(isOpen); } }} > {button} Please confirm This action cannot be undone. Traces linked to this run must be deleted manually. ) : ( button ); };