"use client"; import { useRouter } from "next/navigation"; import { Button } from "~/components/ui/button"; import { api } from "~/trpc/react"; import { Send, Loader2, Mail, MailCheck } from "lucide-react"; interface EnhancedSendInvoiceButtonProps { invoiceId: string; variant?: "default" | "outline" | "ghost" | "icon"; className?: string; showResend?: boolean; size?: "default" | "sm" | "lg" | "icon"; } export function EnhancedSendInvoiceButton({ invoiceId, variant = "outline", className, showResend = false, size = "default", }: EnhancedSendInvoiceButtonProps) { const router = useRouter(); // Fetch invoice data const { data: invoiceData, isLoading: invoiceLoading } = api.invoices.getById.useQuery({ id: invoiceId, }); // Check if client has email const hasClientEmail = invoiceData?.client?.email && invoiceData.client.email.trim() !== ""; const handleSendClick = () => { router.push(`/dashboard/invoices/${invoiceId}/send`); }; // Icon variant for compact display if (variant === "icon") { return ( ); } return ( ); }