From c4f16eb76c909158abdb63aa4cc22f817f274dc5 Mon Sep 17 00:00:00 2001 From: Paul Nothaft Date: Tue, 17 Feb 2026 15:48:57 +0100 Subject: [PATCH] fix: events without expiration date incorrectly shown as expired When expires_at is null (no expiration), the status logic defaulted days to 0, causing all non-expiring events to display as "Expired". Now returns "Active" immediately when there is no expiration date. --- frontend/src/pages/admin/EventsListPage.tsx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/frontend/src/pages/admin/EventsListPage.tsx b/frontend/src/pages/admin/EventsListPage.tsx index 61cf4ce3..0ec2def4 100644 --- a/frontend/src/pages/admin/EventsListPage.tsx +++ b/frontend/src/pages/admin/EventsListPage.tsx @@ -193,7 +193,9 @@ export const EventsListPage: React.FC = () => { if (event.is_archived) return { label: t('events.archived'), color: 'text-neutral-500 dark:text-neutral-400 bg-neutral-100 dark:bg-neutral-700' }; if (!event.is_active) return { label: t('events.inactive'), color: 'text-red-600 dark:text-red-400 bg-red-100 dark:bg-red-900/40' }; - const days = event.expires_at ? differenceInDays(parseISO(event.expires_at), new Date()) : 0; + if (!event.expires_at) return { label: t('events.active'), color: 'text-green-600 dark:text-green-400 bg-green-100 dark:bg-green-900/40' }; + + const days = differenceInDays(parseISO(event.expires_at), new Date()); if (days <= 0) return { label: t('events.expired'), color: 'text-red-600 dark:text-red-400 bg-red-100 dark:bg-red-900/40' }; if (days <= 7) return { label: t('events.daysLeft', { count: days }), color: 'text-orange-600 dark:text-orange-400 bg-orange-100 dark:bg-orange-900/40' };