import { clsx, type ClassValue } from 'clsx'; export function cn(...inputs: ClassValue[]) { return clsx(inputs); } export function formatCurrency(amount: number, currency: string = 'EUR'): string { // Validate currency code - must be 3 letters and a valid ISO 4217 code const validCurrency = currency && /^[A-Z]{3}$/.test(currency) ? currency : 'EUR'; try { return new Intl.NumberFormat('en-US', { style: 'currency', currency: validCurrency, }).format(amount); } catch { // Fallback if currency is still invalid console.warn(`Invalid currency code: ${currency}, falling back to EUR`); return new Intl.NumberFormat('en-US', { style: 'currency', currency: 'EUR', }).format(amount); } } export function formatDate(date: string): string { if (!date) return 'No date'; const parsedDate = new Date(date); if (isNaN(parsedDate.getTime())) { console.warn('Invalid date string:', date); return 'Invalid date'; } return new Intl.DateTimeFormat('en-US', { year: 'numeric', month: 'short', day: 'numeric', }).format(parsedDate); } export function formatDateTime(date: string): string { if (!date) return 'No date'; const parsedDate = new Date(date); if (isNaN(parsedDate.getTime())) { console.warn('Invalid date string:', date); return 'Invalid date'; } return new Intl.DateTimeFormat('en-US', { year: 'numeric', month: 'short', day: 'numeric', hour: '2-digit', minute: '2-digit', }).format(parsedDate); }