fix: resolve date formatting error in event creation

- Fix TypeError "e.match is not a function" when creating events
- Update useLocalizedDate hook to handle both string and object date formats
- Add type safety for date format configuration
- Fix date format strings to use correct date-fns format (lowercase)
- Ensure backward compatibility with existing date settings

The issue was caused by SettingsPage saving date formats as objects
while useLocalizedDate expected strings. This fix handles both formats
gracefully and prevents the error page redirect.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-07-24 11:45:05 +02:00
parent c48b9780df
commit c51d756503
4 changed files with 33 additions and 13 deletions
+13 -2
View File
@@ -22,7 +22,14 @@ export const useLocalizedDate = () => {
const format = (date: Date | string, formatStr?: string) => {
const dateObj = typeof date === 'string' ? new Date(date) : date;
// Use admin-configured date format if available and no format string provided
const dateFormat = formatStr || settings?.general_date_format || 'PPP';
let dateFormat = formatStr;
if (!dateFormat && settings?.general_date_format) {
// Handle both string and object formats
dateFormat = typeof settings.general_date_format === 'string'
? settings.general_date_format
: settings.general_date_format.format || 'PPP';
}
dateFormat = dateFormat || 'PPP';
return dateFnsFormat(dateObj, dateFormat, { locale: getLocale() });
};
@@ -35,6 +42,10 @@ export const useLocalizedDate = () => {
format,
formatDistanceToNow,
locale: getLocale(),
dateFormat: settings?.general_date_format || 'PPP'
dateFormat: settings?.general_date_format
? (typeof settings.general_date_format === 'string'
? settings.general_date_format
: settings.general_date_format.format || 'PPP')
: 'PPP'
};
};