Some checks failed
CI / Unit & Component Tests (push) Has been cancelled
CI / Backend Unit Tests (push) Has been cancelled
CI / E2E Tests (push) Has been cancelled
CI / Unit & Component Tests (pull_request) Successful in 1m55s
CI / Backend Unit Tests (pull_request) Successful in 2m9s
CI / E2E Tests (pull_request) Successful in 18m8s
Extracted sortDocumentsByDate utility with full Vitest coverage (6 tests), wired it into the person detail page with a DESC/ASC toggle button, and added an E2E smoke test for the toggle interaction. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
20 lines
554 B
TypeScript
20 lines
554 B
TypeScript
export type SortDir = 'ASC' | 'DESC';
|
|
|
|
/**
|
|
* Returns a new array of documents sorted by documentDate.
|
|
* Documents without a date are always placed last, regardless of direction.
|
|
*/
|
|
export function sortDocumentsByDate<T extends { documentDate?: string | null }>(
|
|
docs: T[],
|
|
dir: SortDir
|
|
): T[] {
|
|
return [...docs].sort((a, b) => {
|
|
const da = a.documentDate ?? '';
|
|
const db = b.documentDate ?? '';
|
|
if (!da && !db) return 0;
|
|
if (!da) return 1;
|
|
if (!db) return -1;
|
|
return dir === 'DESC' ? db.localeCompare(da) : da.localeCompare(db);
|
|
});
|
|
}
|