diff --git a/src/components/CardGrid.astro b/src/components/CardGrid.astro index 05d33f8..07af2f7 100644 --- a/src/components/CardGrid.astro +++ b/src/components/CardGrid.astro @@ -48,6 +48,21 @@ import BackToTop from "./BackToTop.astro" (function () { function initInventoryForms(root = document) { + // Fetch inventory entries for this card + const invList = root.querySelector('#inventoryEntryList') || document.getElementById('inventoryEntryList'); + if (invList && !invList.dataset.inventoryFetched) { + invList.dataset.inventoryFetched = 'true'; + const cardId = invList.dataset.cardId; + if (cardId) { + const body = new FormData(); + body.append('cardId', cardId); + fetch('/api/inventory', { method: 'POST', body }) + .then(r => r.text()) + .then(html => { invList.innerHTML = html || ''; }) + .catch(() => { invList.innerHTML = 'Failed to load inventory'; }); + } + } + const forms = root.querySelectorAll('[data-inventory-form]'); forms.forEach((form) => { diff --git a/src/pages/api/inventory.ts b/src/pages/api/inventory.ts index 1f661e6..d918936 100644 --- a/src/pages/api/inventory.ts +++ b/src/pages/api/inventory.ts @@ -145,16 +145,11 @@ export const POST: APIRoute = async ({ request, locals }) => { break; default: - return new Response( - 'Invalid action', - { - status: 400, - headers: { 'Content-Type': 'text/html' } - } - ); + // No action = list inventory for this card + return getInventory(userId!, cardId); } - // Always return current inventory + // Always return current inventory after a mutation return getInventory(userId!, cardId); diff --git a/src/pages/partials/card-modal.astro b/src/pages/partials/card-modal.astro index 7c9ee58..a89b972 100644 --- a/src/pages/partials/card-modal.astro +++ b/src/pages/partials/card-modal.astro @@ -500,17 +500,9 @@ const altSearchUrl = (card: any) => { -
+
Loading...
-