From c947fa97d9cfd8089c3755e58f18983d39bdaebb Mon Sep 17 00:00:00 2001 From: Fiz <34069775+Hafizzle@users.noreply.github.com> Date: Mon, 22 Sep 2025 11:12:09 -0500 Subject: [PATCH] Updates & Fixes: Fix Orb of Rebirth bug, update blocked player ToS message, Fix redundant disabled styling (#15494) * add new frontend files * Add UI for managing blockers * correctly reset local data after creating blocker * Tweak wording * Add UI for managing blockers * restructure admin pages * add blocker to block emails from registration * lint fixes * Await genericPurchase completion before page reload to prevent request cancellation. Also adds defensive check for undefined error.response in axios interceptor to prevent "t.response undefined" errors. * Fix shop tabs overflow off screen at certain zoom levels Fix quest cards get cut off on small screens Fix pop-up windows extend past screen edges on mobile * Update ToS error message - Updated account suspension message from "This account, User ID..." to "Your account @[username] has been blocked..." - Modified server auth middleware to pass username parameter when throwing account suspended error -Modified auth utils loginRes function to include username in suspended account error - Updated client bannedAccountModal component to pass username (empty string if unavailable) - Updated login test to expect username in account suspended message * lint fix * Responsive Layout for Equipment Containers - Added responsive CSS for mobile (<768px) and tablet (769px-1024px) - Implemented flex-wrap layout that automatically stacks items in rows of 4 on smaller * remove redundant disabled styles in task modals The .disabled class conflicting with existing disabled state implementations * Revert "Merge branch 'fiz/item-container-scaling' into qa/bat" This reverts commit 4f28bfaad4dbeade66e507fd10904c133b206bda, reversing changes made to 477dd6328acc6a63f5e7f1e98f2dd581665f1898. * fix(blockers): duplicated code from rebase * fix(admin): revert accidental change from rebase * move !error.response to correct level !error.response before any attempt to access error.response.status * chore(github): split responsiveness to #15514 --------- Co-authored-by: Phillip Thelen Co-authored-by: Kalista Payne --- .../user/auth/POST-login-local.test.js | 2 +- website/client/src/app.vue | 3 +++ .../src/components/bannedAccountModal.vue | 2 ++ .../client/src/components/shops/buyModal.vue | 2 +- .../client/src/components/tasks/taskModal.vue | 22 ++++++++++--------- .../client/src/components/ui/toggleSwitch.vue | 2 +- website/common/locales/en/front.json | 2 +- website/server/libs/auth/utils.js | 6 ++++- website/server/middlewares/auth.js | 1 + 9 files changed, 27 insertions(+), 15 deletions(-) diff --git a/test/api/v3/integration/user/auth/POST-login-local.test.js b/test/api/v3/integration/user/auth/POST-login-local.test.js index 1b6776ad88..373c8f8d43 100644 --- a/test/api/v3/integration/user/auth/POST-login-local.test.js +++ b/test/api/v3/integration/user/auth/POST-login-local.test.js @@ -44,7 +44,7 @@ describe('POST /user/auth/local/login', () => { })).to.eventually.be.rejected.and.eql({ code: 401, error: 'NotAuthorized', - message: t('accountSuspended', { communityManagerEmail: nconf.get('EMAILS_COMMUNITY_MANAGER_EMAIL'), userId: user._id }), + message: t('accountSuspended', { communityManagerEmail: nconf.get('EMAILS_COMMUNITY_MANAGER_EMAIL'), userId: user._id, username: user.auth.local.username }), }); }); diff --git a/website/client/src/app.vue b/website/client/src/app.vue index 58fa3e7e59..a49c648541 100644 --- a/website/client/src/app.vue +++ b/website/client/src/app.vue @@ -203,6 +203,9 @@ export default { return response; }, error => { // Set up Error interceptors + if (!error.response) { + return Promise.reject(error); + } if (error.response.status >= 400) { const isBanned = this.checkForBannedUser(error); if (isBanned === true) return null; // eslint-disable-line consistent-return diff --git a/website/client/src/components/bannedAccountModal.vue b/website/client/src/components/bannedAccountModal.vue index 3d77931247..39d4b986ae 100644 --- a/website/client/src/components/bannedAccountModal.vue +++ b/website/client/src/components/bannedAccountModal.vue @@ -43,9 +43,11 @@ export default { const AUTH_SETTINGS = localStorage.getItem(LOCALSTORAGE_AUTH_KEY); const parseSettings = JSON.parse(AUTH_SETTINGS); const userId = parseSettings ? parseSettings.auth.apiId : ''; + const username = this.$store?.state?.user?.data?.auth?.local?.username || ''; return this.$t('accountSuspended', { userId, + username, communityManagerEmail: COMMUNITY_MANAGER_EMAIL, }); }, diff --git a/website/client/src/components/shops/buyModal.vue b/website/client/src/components/shops/buyModal.vue index 408c790045..df6a2763a0 100644 --- a/website/client/src/components/shops/buyModal.vue +++ b/website/client/src/components/shops/buyModal.vue @@ -851,7 +851,7 @@ export default { return; } if (this.genericPurchase) { - this.makeGenericPurchase(this.item, 'buyModal', this.selectedAmountToBuy); + await this.makeGenericPurchase(this.item, 'buyModal', this.selectedAmountToBuy); await this.purchased(this.item.text); } } diff --git a/website/client/src/components/tasks/taskModal.vue b/website/client/src/components/tasks/taskModal.vue index bc6afd67c0..ac45efe07c 100644 --- a/website/client/src/components/tasks/taskModal.vue +++ b/website/client/src/components/tasks/taskModal.vue @@ -35,7 +35,7 @@