Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | 4x 4x 4x 4x 7x 7x 6x 6x 1x 2x 1x 4x 7x 4x 49x | import type { MyEventStatus } from '@/models/event';
export interface EventStatusBadgeColors {
backgroundColor: string;
textColor: string;
}
const STATUS_LABELS: Record<MyEventStatus, string> = {
ACTIVE: 'Active',
IN_PROGRESS: 'In Progress',
COMPLETED: 'Completed',
CANCELED: 'Canceled',
};
const STATUS_BADGE_COLORS: Record<MyEventStatus, EventStatusBadgeColors> = {
ACTIVE: {
backgroundColor: '#DCFCE7',
textColor: '#166534',
},
IN_PROGRESS: {
backgroundColor: '#DBEAFE',
textColor: '#1D4ED8',
},
COMPLETED: {
backgroundColor: '#E2E8F0',
textColor: '#334155',
},
CANCELED: {
backgroundColor: '#FEE2E2',
textColor: '#B91C1C',
},
};
const DEFAULT_STATUS_BADGE_COLORS: EventStatusBadgeColors = {
backgroundColor: 'rgba(255, 255, 255, 0.92)',
textColor: '#111827',
};
export function formatEventStatusLabel(status: string): string {
const normalized = status.trim();
if (!normalized) return 'Unknown';
const knownLabel = STATUS_LABELS[normalized as MyEventStatus];
if (knownLabel) return knownLabel;
const formatted = normalized
.toLowerCase()
.split('_')
.filter(Boolean)
.map((part) => part.charAt(0).toUpperCase() + part.slice(1))
.join(' ');
return formatted || 'Unknown';
}
export function getEventStatusBadgeColors(status: string): EventStatusBadgeColors {
return STATUS_BADGE_COLORS[status as MyEventStatus] ?? DEFAULT_STATUS_BADGE_COLORS;
}
export function shouldShowProfileEvent(status: string): boolean {
return status !== 'ACTIVE';
}
|