From 9d0dc0e202dcbd149897ee8925d2f1ef0533633e Mon Sep 17 00:00:00 2001 From: "gpt-engineer-app[bot]" <159125892+gpt-engineer-app[bot]@users.noreply.github.com> Date: Thu, 7 May 2026 18:44:34 +0000 Subject: [PATCH] Changes Co-authored-by: renee-png <262607627+renee-png@users.noreply.github.com> --- src/routes/invoices.$invoiceId.tsx | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/src/routes/invoices.$invoiceId.tsx b/src/routes/invoices.$invoiceId.tsx index 9007577..0568b1b 100644 --- a/src/routes/invoices.$invoiceId.tsx +++ b/src/routes/invoices.$invoiceId.tsx @@ -141,6 +141,8 @@ function InvoiceDetail() { const canEdit = isAdmin || invoice.created_by === user?.id; const isDraft = invoice.status === "draft"; + // Line items, notes, and tax can be edited on any non-void invoice (not just drafts). + const canModify = canEdit && invoice.status !== "void"; const balance = Number(invoice.total) - Number(invoice.amount_paid); const setStatus = async (status: string) => { @@ -420,7 +422,7 @@ function InvoiceDetail() { Qty Rate Amount - {canEdit && isDraft && } + {canModify && } @@ -433,13 +435,13 @@ function InvoiceDetail() { {sub.billable ? formatCurrency(sub.subtotal) : "—"} - {canEdit && isDraft && } + {canModify && } {sub.items.map((it) => ( {it.work_date ? formatDate(it.work_date) : "—"} - {canEdit && isDraft ? ( + {canModify ? ( e.target.value !== it.description && updateItem(it.id, { description: e.target.value })} /> ) : ( @@ -454,13 +456,13 @@ function InvoiceDetail() { )} - {canEdit && isDraft ? ( + {canModify ? ( Number(e.target.value) !== Number(it.quantity) && updateItem(it.id, { quantity: Number(e.target.value) })} /> ) : Number(it.quantity).toFixed(2)} - {canEdit && isDraft ? ( + {canModify ? ( Number(e.target.value) !== Number(it.rate) && updateItem(it.id, { rate: Number(e.target.value) })} /> ) : formatCurrency(it.rate)} @@ -468,7 +470,7 @@ function InvoiceDetail() { {sub.billable ? formatCurrency(it.amount) : "—"} - {canEdit && isDraft && ( + {canModify && ( @@ -501,7 +503,7 @@ function InvoiceDetail() { - {canEdit && isDraft ? ( + {canModify ? (