From 08b31ebadb780d72ea6d734bff3b0412237ed2e8 Mon Sep 17 00:00:00 2001 From: Scott Beinlich <34527734+sbeinlich@users.noreply.github.com> Date: Wed, 3 Aug 2022 02:13:16 -0700 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20Fixed=20impersonate=20modal=20no?= =?UTF-8?q?t=20closing=20correctly=20when=20navigating=20away=20from=20mem?= =?UTF-8?q?ber=20page.=20(#1753)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit closes https://github.com/TryGhost/Ghost/issues/12214 - previously, when navigating back from the members page with the impersonate modal open, opening a new member showed the impersonate modal. --- ghost/admin/app/controllers/member.js | 5 +++++ ghost/admin/app/routes/member.js | 11 +++++++++++ 2 files changed, 16 insertions(+) diff --git a/ghost/admin/app/controllers/member.js b/ghost/admin/app/controllers/member.js index 4f80f1fa9b..b9edc04300 100644 --- a/ghost/admin/app/controllers/member.js +++ b/ghost/admin/app/controllers/member.js @@ -109,6 +109,11 @@ export default class MemberController extends Controller { this.showImpersonateMemberModal = !this.showImpersonateMemberModal; } + @action + closeImpersonateMemberModal() { + this.showImpersonateMemberModal = false; + } + @action save() { return this.saveTask.perform(); diff --git a/ghost/admin/app/routes/member.js b/ghost/admin/app/routes/member.js index 0b1637da5c..9d3dfd9437 100644 --- a/ghost/admin/app/routes/member.js +++ b/ghost/admin/app/routes/member.js @@ -12,6 +12,7 @@ export default class MembersRoute extends AdminRoute { super(...arguments); this.router.on('routeWillChange', (transition) => { this.showUnsavedChangesModal(transition); + this.closeImpersonateModal(transition); }); } @@ -64,4 +65,14 @@ export default class MembersRoute extends AdminRoute { } } } + + closeImpersonateModal(transition) { + // If user navigates away with forward or back button, ensure returning to page + // hides modal + if (transition.from && transition.from.name === this.routeName && transition.targetName) { + let {controller} = this; + + controller.closeImpersonateMemberModal(transition); + } + } }