diff --git a/static/script.js b/static/script.js index 800a8bc..f1a26ea 100644 --- a/static/script.js +++ b/static/script.js @@ -1376,6 +1376,24 @@ function renderEvents() { }).join(""); } +function restoreEventsClickOrder(serverEvents, persistedEvents) { + const persistedIds = new Map( + persistedEvents + .filter(e => e.id !== null && e.id !== undefined && e.id !== "") + .map((e, index) => [String(e.id), index]) + ); + + return [...serverEvents].sort((a, b) => { + const aIndex = persistedIds.has(String(a.id)) ? persistedIds.get(String(a.id)) : 999999; + const bIndex = persistedIds.has(String(b.id)) ? persistedIds.get(String(b.id)) : 999999; + + if (aIndex !== bIndex) return aIndex - bIndex; + + return (a.id || 0) - (b.id || 0); + }); +} + + async function loadEventsFromServer() { if (!SESSION_TOKEN) return; @@ -1414,7 +1432,7 @@ async function loadEventsFromServer() { }; }); - matchEvents = sortEventsForDisplay(matchEvents); + matchEvents = restoreEventsClickOrder(matchEvents, persistedEvents);