ln/app/client/helpers.tsx

26 lines
1.1 KiB
TypeScript

import { WorkingProgressStatus } from '@generated/types';
export function assertUnreachable(value: never): never {
throw new Error(`Unhandled scenario: ${value}`);
}
export function toBgColorByProgressStatus(value: WorkingProgressStatus): string {
if (value === WorkingProgressStatus.InProgress) return 'yellow.500';
if (value === WorkingProgressStatus.Frozen) return 'blue.500';
if (value === WorkingProgressStatus.Complete) return 'green.500';
assertUnreachable(value);
}
export function toFgColorByProgressStatus(value: WorkingProgressStatus): string {
if (value === WorkingProgressStatus.InProgress) return 'fg.warning';
if (value === WorkingProgressStatus.Frozen) return 'fg.info';
if (value === WorkingProgressStatus.Complete) return 'fg.success';
assertUnreachable(value);
}
export function toWorkingProgressStatusLabel(value: WorkingProgressStatus): string {
if (value === WorkingProgressStatus.InProgress) return 'In progress';
if (value === WorkingProgressStatus.Frozen) return 'Frozen';
if (value === WorkingProgressStatus.Complete) return 'Complete';
assertUnreachable(value);
}