From b5ac2e060860d3ef22c79992e550e40d8f873731 Mon Sep 17 00:00:00 2001 From: Atridad Lahiji Date: Tue, 20 Jan 2026 01:21:56 -0700 Subject: [PATCH] Oops --- src/pages/dashboard/invoices/index.astro | 31 +++++++++++++----------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/src/pages/dashboard/invoices/index.astro b/src/pages/dashboard/invoices/index.astro index 077aae0..e8da46c 100644 --- a/src/pages/dashboard/invoices/index.astro +++ b/src/pages/dashboard/invoices/index.astro @@ -27,7 +27,8 @@ const currentTeamIdResolved = userMembership.organizationId; // Get filter parameters const currentYear = new Date().getFullYear(); -const selectedYear = Astro.url.searchParams.get('year') ? parseInt(Astro.url.searchParams.get('year')!) : currentYear; +const yearParam = Astro.url.searchParams.get('year'); +const selectedYear = yearParam === 'current' || !yearParam ? 'current' : parseInt(yearParam); const selectedType = Astro.url.searchParams.get('type') || 'all'; const selectedStatus = Astro.url.searchParams.get('status') || 'all'; const sortBy = Astro.url.searchParams.get('sort') || 'date-desc'; @@ -45,9 +46,14 @@ const allInvoicesRaw = await db.select({ // Get unique years from invoices const availableYears = [...new Set(allInvoicesRaw.map(i => i.invoice.issueDate.getFullYear()))].sort((a, b) => b - a); +// Ensure current year is in the list +if (!availableYears.includes(currentYear)) { + availableYears.unshift(currentYear); +} + // Filter by year -const yearStart = new Date(selectedYear, 0, 1); -const yearEnd = new Date(selectedYear, 11, 31, 23, 59, 59); +const yearStart = selectedYear === 'current' ? new Date(currentYear, 0, 1) : new Date(selectedYear, 0, 1); +const yearEnd = selectedYear === 'current' ? new Date() : new Date(selectedYear, 11, 31, 23, 59, 59); let filteredInvoices = allInvoicesRaw.filter(i => { const issueDate = i.invoice.issueDate; @@ -130,7 +136,7 @@ const getStatusColor = (status: string) => {
Total Invoices
{yearInvoices.filter(i => i.invoice.type === 'invoice').length}
-
{selectedYear}
+
{selectedYear === 'current' ? `${currentYear} (YTD)` : selectedYear}
@@ -156,7 +162,7 @@ const getStatusColor = (status: string) => { .filter(i => i.invoice.type === 'invoice' && i.invoice.status === 'paid') .reduce((acc, curr) => acc + curr.invoice.total, 0), 'USD')} -
Paid invoices ({selectedYear})
+
Paid invoices ({selectedYear === 'current' ? `${currentYear} YTD` : selectedYear})
@@ -170,13 +176,10 @@ const getStatusColor = (status: string) => { Year @@ -221,7 +224,7 @@ const getStatusColor = (status: string) => { - {(selectedYear !== currentYear || selectedType !== 'all' || selectedStatus !== 'all' || sortBy !== 'date-desc') && ( + {(selectedYear !== 'current' || selectedType !== 'all' || selectedStatus !== 'all' || sortBy !== 'date-desc') && (
@@ -238,7 +241,7 @@ const getStatusColor = (status: string) => {

Showing {allInvoices.length} {allInvoices.length === 1 ? 'result' : 'results'} - {selectedYear && ` for ${selectedYear}`} + {selectedYear === 'current' ? ` for ${currentYear} (year to date)` : ` for ${selectedYear}`}