From 0dbb0fbf12a88e17cffd5d133f70cb7a73c41a42 Mon Sep 17 00:00:00 2001 From: "gpt-engineer-app[bot]" <159125892+gpt-engineer-app[bot]@users.noreply.github.com> Date: Sat, 18 Apr 2026 01:09:54 +0000 Subject: [PATCH] Changes Co-authored-by: renee-png <262607627+renee-png@users.noreply.github.com> --- src/routes/invoices.$invoiceId.tsx | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/src/routes/invoices.$invoiceId.tsx b/src/routes/invoices.$invoiceId.tsx index 72ead90..1471ea7 100644 --- a/src/routes/invoices.$invoiceId.tsx +++ b/src/routes/invoices.$invoiceId.tsx @@ -12,10 +12,11 @@ import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@ import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogFooter } from "@/components/ui/dialog"; import { supabase } from "@/integrations/supabase/client"; import { useAuth } from "@/lib/auth"; -import { ArrowLeft, FileDown, Plus, Trash2, Loader2, Send, Ban, CheckCircle2, DollarSign } from "lucide-react"; +import { ArrowLeft, FileDown, Plus, Trash2, Loader2, Send, Ban, CheckCircle2, DollarSign, Wallet } from "lucide-react"; import { formatCurrency, formatDate, statusBadgeClass } from "@/lib/format"; import { downloadInvoicePdf, type InvoicePdfInput } from "@/lib/invoice-pdf"; import { recalcInvoiceTotals } from "@/lib/invoice-generation"; +import { ApplyTrustDialog } from "@/components/trust/trust-account-panel"; import { toast } from "sonner"; export const Route = createFileRoute("/invoices/$invoiceId")({ @@ -37,6 +38,7 @@ function InvoiceDetail() { const [loading, setLoading] = useState(true); const [savingItem, setSavingItem] = useState(false); const [payOpen, setPayOpen] = useState(false); + const [trustOpen, setTrustOpen] = useState(false); const load = async () => { setLoading(true); @@ -269,6 +271,11 @@ function InvoiceDetail() {
Invoice {invoice.status} + {invoice.is_retainer && ( + + Retainer + + )}

{invoice.invoice_number}

@@ -290,6 +297,11 @@ function InvoiceDetail() { {canEdit && invoice.status !== "void" && invoice.status !== "paid" && ( )} + {canEdit && balance > 0 && !invoice.is_retainer && ( + + )} {canEdit && ( )} @@ -476,6 +488,19 @@ function InvoiceDetail() { userId={user?.id ?? ""} onSaved={load} /> + + {invoice.client?.id && ( + + )} ); }