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) => {