fix: handle null dates in dashboard and gallery pages
Add null checks for expires_at and event_date fields to prevent TypeError when calling parseISO() on null values. This fixes crashes that occurred after making event dates optional. - AdminDashboard: skip events with null expires_at in expiring filter - GalleryPage: handle null expires_at in expiration calculation - GalleryView: make daysUntilExpiration nullable with explicit checks - EventDetailsPage: return null from safeParseDate for null inputs
This commit is contained in:
@@ -310,10 +310,12 @@ export const GalleryView: React.FC<GalleryViewProps> = ({ slug, event }) => {
|
||||
}
|
||||
}, [settingsData, data, setTheme]); // Use data instead of event prop
|
||||
|
||||
// Calculate days until expiration
|
||||
const daysUntilExpiration = differenceInDays(parseISO(event.expires_at), new Date());
|
||||
const showUrgentWarning = daysUntilExpiration <= 7;
|
||||
const isExpired = daysUntilExpiration < 0;
|
||||
// Calculate days until expiration (null means never expires)
|
||||
const daysUntilExpiration = event.expires_at
|
||||
? differenceInDays(parseISO(event.expires_at), new Date())
|
||||
: null;
|
||||
const showUrgentWarning = daysUntilExpiration !== null && daysUntilExpiration <= 7;
|
||||
const isExpired = daysUntilExpiration !== null && daysUntilExpiration < 0;
|
||||
|
||||
// Filter and sort photos
|
||||
const filteredPhotos = useMemo(() => {
|
||||
@@ -602,7 +604,7 @@ export const GalleryView: React.FC<GalleryViewProps> = ({ slug, event }) => {
|
||||
headerExtra={(() => {
|
||||
const items = [];
|
||||
|
||||
if (daysUntilExpiration <= 1 && daysUntilExpiration > 0) {
|
||||
if (daysUntilExpiration !== null && daysUntilExpiration <= 1 && daysUntilExpiration > 0) {
|
||||
items.push(
|
||||
<CountdownTimer key="countdown" expiresAt={event.expires_at} className="mr-2" />
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user