These functions describe DocumentStatus display logic (dot colours, readable labels) and belong in the document domain. They were incorrectly placed in personFormat.ts. Moving them to documentStatusLabel.ts removes the person → document dependency and prepares the codebase for the boundaries/dependencies ESLint rule. Refs #410 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
40 lines
981 B
TypeScript
40 lines
981 B
TypeScript
import { m } from '$lib/paraglide/messages.js';
|
|
|
|
export type DocumentStatus = 'PLACEHOLDER' | 'UPLOADED' | 'TRANSCRIBED' | 'REVIEWED' | 'ARCHIVED';
|
|
|
|
export function formatDocumentStatus(status: string): string {
|
|
switch (status) {
|
|
case 'PLACEHOLDER':
|
|
return m.doc_status_placeholder();
|
|
case 'UPLOADED':
|
|
return m.doc_status_uploaded();
|
|
case 'TRANSCRIBED':
|
|
return m.doc_status_transcribed();
|
|
case 'REVIEWED':
|
|
return m.doc_status_reviewed();
|
|
case 'ARCHIVED':
|
|
return m.doc_status_archived();
|
|
default:
|
|
return m.doc_status_unknown();
|
|
}
|
|
}
|
|
|
|
export function statusDotClass(status: DocumentStatus): string {
|
|
switch (status) {
|
|
case 'PLACEHOLDER':
|
|
return 'bg-gray-400';
|
|
case 'UPLOADED':
|
|
return 'bg-emerald-500';
|
|
case 'TRANSCRIBED':
|
|
return 'bg-blue-400';
|
|
case 'REVIEWED':
|
|
return 'bg-amber-400';
|
|
case 'ARCHIVED':
|
|
return 'bg-emerald-600';
|
|
}
|
|
}
|
|
|
|
export function statusLabel(status: string): string {
|
|
return formatDocumentStatus(status);
|
|
}
|