udpate the ordering of the cards to be oldest first by set
This commit is contained in:
@@ -4923,5 +4923,5 @@
|
||||
"count": 44,
|
||||
"totalCount": 44,
|
||||
"cached": false,
|
||||
"updatedAt": "2025-08-17T12:00:51.895Z"
|
||||
"updatedAt": "2025-08-17T12:09:13.846Z"
|
||||
}
|
||||
@@ -1,20 +1 @@
|
||||
{
|
||||
"det1-8": {
|
||||
"base": true,
|
||||
"holofoil": true
|
||||
},
|
||||
"xy7-19": {
|
||||
"base": true,
|
||||
"reverseHolofoil": true
|
||||
},
|
||||
"sm115-15": {
|
||||
"base": true,
|
||||
"reverseHolofoil": true
|
||||
},
|
||||
"sm75-19": {
|
||||
"base": true
|
||||
},
|
||||
"mcd16-4": {
|
||||
"base": true
|
||||
}
|
||||
}
|
||||
{}
|
||||
@@ -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);
|
||||
|
||||
@@ -2,6 +2,7 @@ export type TcgSet = {
|
||||
id: string;
|
||||
name: string;
|
||||
series: string;
|
||||
releaseDate?: string;
|
||||
printedTotal?: number;
|
||||
total?: number;
|
||||
images?: {
|
||||
|
||||
Reference in New Issue
Block a user