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( 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); }); }