All files / src/utils eventStatus.ts

100% Statements 17/17
87.5% Branches 7/8
100% Functions 4/4
100% Lines 15/15

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';
}