| 123456789101112131415161718192021222324252627282930313233 |
- /**
- * Numeric string sorting helpers.
- *
- * The backend currently returns ascending order for years/months/days.
- * In the Explorer we want a "latest first" experience, so we sort descending.
- */
- function toNumber(value) {
- const n = Number.parseInt(String(value), 10);
- return Number.isNaN(n) ? null : n;
- }
- export function sortNumericStringsAsc(items) {
- const arr = Array.isArray(items) ? [...items] : [];
- return arr.sort((a, b) => {
- const na = toNumber(a);
- const nb = toNumber(b);
- if (na !== null && nb !== null) return na - nb;
- return String(a).localeCompare(String(b), "de");
- });
- }
- export function sortNumericStringsDesc(items) {
- return sortNumericStringsAsc(items).reverse();
- }
- export function sortFilesByNameAsc(files) {
- const arr = Array.isArray(files) ? [...files] : [];
- return arr.sort((a, b) =>
- String(a?.name || "").localeCompare(String(b?.name || ""), "de")
- );
- }
|