From 573c4a69fae9f0b37fb9e78b171e4638ae8407e7 Mon Sep 17 00:00:00 2001 From: Krao Hasanee Date: Tue, 2 Jun 2026 10:47:58 -0400 Subject: [PATCH] fix: expense date timezone, receipt popup blocker --- src/pages/team/TeamInvoices.jsx | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/pages/team/TeamInvoices.jsx b/src/pages/team/TeamInvoices.jsx index fc0b694..21a5ad9 100644 --- a/src/pages/team/TeamInvoices.jsx +++ b/src/pages/team/TeamInvoices.jsx @@ -269,16 +269,16 @@ export default function Invoices() { const handleViewReceipt = async (expense) => { if (!expense.receipt_path) return; - const { data, error } = await supabase.storage.from(RECEIPT_BUCKET).createSignedUrl(expense.receipt_path, 3600, { - download: expense.receipt_name || undefined, - }); + const win = window.open('', '_blank', 'noopener,noreferrer'); + const { data, error } = await supabase.storage.from(RECEIPT_BUCKET).createSignedUrl(expense.receipt_path, 3600); if (error || !data?.signedUrl) { + win?.close(); const message = error?.message || 'Failed to open receipt.'; setExpensesError(message); alert(message); return; } - window.open(data.signedUrl, '_blank', 'noopener,noreferrer'); + win.location.href = data.signedUrl; }; const updateSubcontractorPO = async (po, updates, errorLabel = 'Failed to update PO') => { @@ -1210,7 +1210,7 @@ export default function Invoices() { return exp[key] || ''; }).map(exp => ( startEditExpense(exp)}> - {new Date(exp.date).toLocaleDateString()} + {new Date(exp.date + 'T12:00:00').toLocaleDateString('en-US', { month: 'short', day: 'numeric', year: 'numeric' })} {exp.description} {exp.category}