From d11810677c1389ea3e692ae5ce4e83cadaae5a01 Mon Sep 17 00:00:00 2001 From: abigley <49001612+abigley@users.noreply.github.com> Date: Fri, 21 Jan 2022 16:10:50 -0500 Subject: [PATCH] Fixed issue with mystery sets, pets, and mounts staying pinned in the rewards column after purchasing. Added logic to look up item info and remove from pinned list by path. (#13701) --- website/common/script/ops/buy/buyMysterySet.js | 5 +++++ website/common/script/ops/buy/hourglassPurchase.js | 10 ++++++++++ 2 files changed, 15 insertions(+) diff --git a/website/common/script/ops/buy/buyMysterySet.js b/website/common/script/ops/buy/buyMysterySet.js index 9227507f2e..3b8cd514b2 100644 --- a/website/common/script/ops/buy/buyMysterySet.js +++ b/website/common/script/ops/buy/buyMysterySet.js @@ -8,6 +8,8 @@ import { NotFound, } from '../../libs/errors'; import errorMessage from '../../libs/errorMessage'; +import { removeItemByPath } from '../pinnedGearUtils'; +import getItemInfo from '../../libs/getItemInfo'; export default function buyMysterySet (user, req = {}, analytics) { const key = get(req, 'params.key'); @@ -28,6 +30,9 @@ export default function buyMysterySet (user, req = {}, analytics) { user.items.gear.owned[item.key] = true; }); + const itemInfo = getItemInfo(user, 'mystery_set', mysterySet); + removeItemByPath(user, itemInfo.path); + if (analytics) { analytics.track('buy', { uuid: user._id, diff --git a/website/common/script/ops/buy/hourglassPurchase.js b/website/common/script/ops/buy/hourglassPurchase.js index 1d0b6fa185..9c7a6f1cc9 100644 --- a/website/common/script/ops/buy/hourglassPurchase.js +++ b/website/common/script/ops/buy/hourglassPurchase.js @@ -71,6 +71,11 @@ export default function purchaseHourglass (user, req = {}, analytics, quantity = [key]: 5, }; if (user.markModified) user.markModified('items.pets'); + const itemInfo = getItemInfo(user, 'timeTravelersStable', { + key, + type, + }); + removeItemByPath(user, itemInfo.path); } if (type === 'mounts') { @@ -79,6 +84,11 @@ export default function purchaseHourglass (user, req = {}, analytics, quantity = [key]: true, }; if (user.markModified) user.markModified('items.mounts'); + const itemInfo = getItemInfo(user, 'timeTravelersStable', { + key, + type, + }); + removeItemByPath(user, itemInfo.path); } }