"use client" import { useRouter } from "next/navigation" import { useState } from "react" import { useMutation } from "convex/react" import { api } from "@/convex/_generated/api" import type { Id } from "@/convex/_generated/dataModel" import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription, DialogTrigger } from "@/components/ui/dialog" import { Button } from "@/components/ui/button" import { AlertTriangle, Trash2 } from "lucide-react" import { toast } from "sonner" export function DeleteTicketDialog({ ticketId }: { ticketId: Id<"tickets"> }) { const router = useRouter() const remove = useMutation(api.tickets.remove) const [open, setOpen] = useState(false) const [loading, setLoading] = useState(false) async function confirm() { setLoading(true) toast.loading("Excluindo ticket...", { id: "del" }) try { await remove({ ticketId }) toast.success("Ticket excluído.", { id: "del" }) setOpen(false) router.push("/tickets") } catch { toast.error("Não foi possível excluir o ticket.", { id: "del" }) } finally { setLoading(false) } } return ( Excluir ticket Esta ação é permanente e removerá o ticket, comentários e eventos associados. Deseja continuar?
) }