Fix IGDB result selection: use DOM data attributes + pass igdb_id to backend
Build & Deploy / build-and-deploy (push) Successful in 58s

Two issues fixed:

1. Frontend closure bug: IGDB result buttons used Svelte {#each} closure
   with onclick={() => doUpload(result.name)}. When clicking the 3rd
   result, the 1st result's handler sometimes fired. Fixed by reading
   data-name from e.currentTarget.dataset instead of JS closure.

2. Backend scrape mismatch: when user selected 'Blood' from IGDB
   results, backend's autoScrape searched for 'Blood' and could match
   'Captain Blood' first (alphabetical), overwriting metadata.
   Now passes igdb_id along with title so backend uses the EXACT
   IGDB entry the user selected via applyIgdbId() instead of
   auto-searching.
This commit is contained in:
Hermes Agent
2026-05-28 16:00:51 +02:00
parent a4b633ae86
commit ff7b7b446f
3 changed files with 16 additions and 8 deletions
+2 -1
View File
@@ -43,10 +43,11 @@ export async function deleteGame(id) {
}
/** Upload a game ZIP */
export async function uploadGame(file, title) {
export async function uploadGame(file, title, igdbId) {
const form = new FormData();
form.append("file", file);
if (title) form.append("title", title);
if (igdbId) form.append("igdb_id", String(igdbId));
const res = await fetch(`${BASE}/api/upload`, {
method: "POST",