udpate the ordering of the cards to be oldest first by set
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user