udpate the ordering of the cards to be oldest first by set

This commit is contained in:
2025-08-17 13:11:40 +01:00
parent 7e0aa8fed0
commit 43aafba57a
4 changed files with 38 additions and 23 deletions

View File

@@ -36,7 +36,24 @@ export default function Page() {
const res = await fetch('/api/magikarp?pageSize=250');
if (!res.ok) throw new Error('Failed to fetch');
const json = await res.json();
setCards(json.data || []);
const list: TcgCard[] = json.data || [];
list.sort((a, b) => {
const da = Date.parse(a.set.releaseDate || '');
const db = Date.parse(b.set.releaseDate || '');
if (Number.isFinite(da) && Number.isFinite(db)) {
if (da !== db) return da - db; // oldest first
} else if (Number.isFinite(da)) {
return -1;
} else if (Number.isFinite(db)) {
return 1;
}
// tie-breaker by card number if numeric
const na = parseInt(a.number, 10);
const nb = parseInt(b.number, 10);
if (Number.isFinite(na) && Number.isFinite(nb)) return na - nb;
return a.number.localeCompare(b.number);
});
setCards(list);
if (json.note) setNote(String(json.note));
if (json.updatedAt) setUpdatedAt(String(json.updatedAt));
if (typeof json.cached === 'boolean') setCachedFlag(json.cached);
@@ -56,7 +73,23 @@ export default function Page() {
const res = await fetch('/api/magikarp?pageSize=250&refresh=1', { cache: 'no-store' });
if (!res.ok) throw new Error('Failed to refresh');
const json = await res.json();
setCards(json.data || []);
const list: TcgCard[] = json.data || [];
list.sort((a, b) => {
const da = Date.parse(a.set.releaseDate || '');
const db = Date.parse(b.set.releaseDate || '');
if (Number.isFinite(da) && Number.isFinite(db)) {
if (da !== db) return da - db; // oldest first
} else if (Number.isFinite(da)) {
return -1;
} else if (Number.isFinite(db)) {
return 1;
}
const na = parseInt(a.number, 10);
const nb = parseInt(b.number, 10);
if (Number.isFinite(na) && Number.isFinite(nb)) return na - nb;
return a.number.localeCompare(b.number);
});
setCards(list);
if (json.note) setNote(String(json.note)); else setNote(null);
if (json.updatedAt) setUpdatedAt(String(json.updatedAt));
if (typeof json.cached === 'boolean') setCachedFlag(json.cached);