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 | 4x 4x 4x 4x 4x 6x 6x 5x 4x 1x 2x 1x 4x 6x 4x 76x | import i18n from '@/i18n';
import type { MyEventStatus } from '@/models/event';
export interface EventStatusBadgeColors {
backgroundColor: string;
textColor: string;
}
const KNOWN_STATUSES: MyEventStatus[] = ['ACTIVE', 'IN_PROGRESS', 'COMPLETED', '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 i18n.t('events.status.Unknown');
if (KNOWN_STATUSES.includes(normalized as MyEventStatus)) {
return i18n.t(`events.status.${normalized}`);
}
const formatted = normalized
.toLowerCase()
.split('_')
.filter(Boolean)
.map((part) => part.charAt(0).toUpperCase() + part.slice(1))
.join(' ');
return formatted || i18n.t('events.status.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';
}
|