Refactor code
This commit is contained in:
@ -10,6 +10,10 @@ export const COMMISSION_STATUSES = [
|
||||
|
||||
export type CommissionStatus = (typeof COMMISSION_STATUSES)[number];
|
||||
|
||||
function isCommissionStatus(value: string): value is CommissionStatus {
|
||||
return (COMMISSION_STATUSES as readonly string[]).includes(value);
|
||||
}
|
||||
|
||||
export const BOARD_COLUMNS = {
|
||||
intake: {
|
||||
title: "Intake",
|
||||
@ -30,15 +34,20 @@ export const BOARD_COLUMNS = {
|
||||
},
|
||||
} as const;
|
||||
|
||||
const INTAKE_STATUSES = new Set<CommissionStatus>(BOARD_COLUMNS.intake.statuses);
|
||||
const IN_PROGRESS_STATUSES = new Set<CommissionStatus>(BOARD_COLUMNS.inProgress.statuses);
|
||||
const COMPLETED_STATUSES = new Set<CommissionStatus>(BOARD_COLUMNS.completed.statuses);
|
||||
|
||||
export type BoardColumnId = keyof typeof BOARD_COLUMNS;
|
||||
|
||||
export function columnIdForStatus(status: string): BoardColumnId | null {
|
||||
if (BOARD_COLUMNS.intake.statuses.includes(status as any)) return "intake";
|
||||
if (BOARD_COLUMNS.inProgress.statuses.includes(status as any)) return "inProgress";
|
||||
if (BOARD_COLUMNS.completed.statuses.includes(status as any)) return "completed";
|
||||
if (!isCommissionStatus(status)) return null;
|
||||
if (INTAKE_STATUSES.has(status)) return "intake";
|
||||
if (IN_PROGRESS_STATUSES.has(status)) return "inProgress";
|
||||
if (COMPLETED_STATUSES.has(status)) return "completed";
|
||||
return null;
|
||||
}
|
||||
|
||||
export function canonicalStatusForColumn(col: BoardColumnId): CommissionStatus {
|
||||
return BOARD_COLUMNS[col].canonicalStatus as CommissionStatus;
|
||||
return BOARD_COLUMNS[col].canonicalStatus;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user