From 05df606ea4d9c6ce8b4d6d9162db320fadf53196 Mon Sep 17 00:00:00 2001 From: Justin Edmund Date: Sun, 29 Jan 2023 23:36:57 -0800 Subject: [PATCH] Don't POST if the user is adding the same weapon to a position --- components/WeaponGrid/index.tsx | 37 +++++++++++++++++++++++++-------- 1 file changed, 28 insertions(+), 9 deletions(-) diff --git a/components/WeaponGrid/index.tsx b/components/WeaponGrid/index.tsx index 0fe9c291..f5dc668c 100644 --- a/components/WeaponGrid/index.tsx +++ b/components/WeaponGrid/index.tsx @@ -152,15 +152,34 @@ const WeaponGrid = (props: Props) => { if (weapon.uncap.ulb) uncapLevel = 5 else if (weapon.uncap.flb) uncapLevel = 4 - return await api.endpoints.weapons.create({ - weapon: { - party_id: partyId, - weapon_id: weapon.id, - position: position, - mainhand: position == -1, - uncap_level: uncapLevel, - }, - }) + let post = false + if ( + position === -1 && + (!appState.grid.weapons.mainWeapon || + (appState.grid.weapons.mainWeapon && + appState.grid.weapons.mainWeapon.object.id !== weapon.id)) + ) { + post = true + } else if ( + position !== -1 && + (!appState.grid.weapons.allWeapons[position] || + (appState.grid.weapons.allWeapons[position] && + appState.grid.weapons.allWeapons[position]?.object.id !== weapon.id)) + ) { + post = true + } + + if (post) { + return await api.endpoints.weapons.create({ + weapon: { + party_id: partyId, + weapon_id: weapon.id, + position: position, + mainhand: position == -1, + uncap_level: uncapLevel, + }, + }) + } } function storeGridWeapon(gridWeapon: GridWeapon) {