From c3938169fafd8663aa9affb1b7296257253f59da Mon Sep 17 00:00:00 2001 From: Sainan Date: Wed, 8 May 2024 22:40:21 +0200 Subject: [PATCH] improve(webui): fix add weapon, improve handling of unknown items, maintain scroll position (#181) Co-authored-by: Sainan --- .../custom/getItemListsController.ts | 2 +- src/services/inventoryService.ts | 2 +- static/webui/index.html | 6 ++++- static/webui/script.js | 26 +++++++++++++------ 4 files changed, 25 insertions(+), 11 deletions(-) diff --git a/src/controllers/custom/getItemListsController.ts b/src/controllers/custom/getItemListsController.ts index 92eedda0..ec768b83 100644 --- a/src/controllers/custom/getItemListsController.ts +++ b/src/controllers/custom/getItemListsController.ts @@ -18,7 +18,7 @@ function reduceItems(items: MinItem[]): ListedItem[] { const getItemListsController: RequestHandler = (_req, res) => { res.json({ warframes: reduceItems(warframes), - weapons: reduceItems(weapons) + weapons: reduceItems(weapons.filter(item => item.productCategory != "OperatorAmps")) }); }; diff --git a/src/services/inventoryService.ts b/src/services/inventoryService.ts index 43675663..d199ccb4 100644 --- a/src/services/inventoryService.ts +++ b/src/services/inventoryService.ts @@ -178,7 +178,7 @@ export const addWeapon = async ( weaponIndex = inventory.Melee.push({ ItemType: weaponName, Configs: [], XP: 0 }); break; default: - throw new Error("unknown weapon type"); + throw new Error("unknown weapon type: " + weaponType); } const changedInventory = await inventory.save(); diff --git a/static/webui/index.html b/static/webui/index.html index ea91f01b..780792ec 100644 --- a/static/webui/index.html +++ b/static/webui/index.html @@ -26,6 +26,10 @@

Hello, ! Logout

+

+ Note: Changes made here will only be reflected in-game when the game re-downloads your inventory. + Visiting the navigation should be the easiest way to trigger that. +

@@ -50,7 +54,7 @@
- +
diff --git a/static/webui/script.js b/static/webui/script.js index 0a3de30c..c7a0cdc0 100644 --- a/static/webui/script.js +++ b/static/webui/script.js @@ -69,7 +69,7 @@ function updateInventory() { const tr = document.createElement("tr"); { const td = document.createElement("td"); - td.textContent = itemMap[item.ItemType].name; + td.textContent = itemMap[item.ItemType]?.name ?? item.ItemType; tr.appendChild(td); } { @@ -78,17 +78,22 @@ function updateInventory() { if (item.XP < 1_600_000) { const a = document.createElement("a"); a.href = "#"; - a.onclick = function () { + a.onclick = function (event) { + event.preventDefault(); addGearExp("Suits", item.ItemId.$oid, 1_600_000 - item.XP); }; a.textContent = "Make Rank 30"; td.appendChild(a); - td.innerHTML += " · "; + + const span = document.createElement("span"); + span.innerHTML = " · "; + td.appendChild(span); } { const a = document.createElement("a"); a.href = "#"; - a.onclick = function () { + a.onclick = function (event) { + event.preventDefault(); disposeOfGear("Suits", item.ItemId.$oid); }; a.textContent = "Remove"; @@ -105,7 +110,7 @@ function updateInventory() { const tr = document.createElement("tr"); { const td = document.createElement("td"); - td.textContent = itemMap[item.ItemType].name; + td.textContent = itemMap[item.ItemType]?.name ?? item.ItemType; tr.appendChild(td); } { @@ -114,17 +119,22 @@ function updateInventory() { if (item.XP < 800_000) { const a = document.createElement("a"); a.href = "#"; - a.onclick = function () { + a.onclick = function (event) { + event.preventDefault(); addGearExp(category, item.ItemId.$oid, 800_000 - item.XP); }; a.textContent = "Make Rank 30"; td.appendChild(a); - td.innerHTML += " · "; + + const span = document.createElement("span"); + span.innerHTML = " · "; + td.appendChild(span); } { const a = document.createElement("a"); a.href = "#"; - a.onclick = function () { + a.onclick = function (event) { + event.preventDefault(); disposeOfGear(category, item.ItemId.$oid); }; a.textContent = "Remove";