diff --git a/ghost/admin/app/controllers/member.js b/ghost/admin/app/controllers/member.js
index 2ed9233a44..894b7f7b6f 100644
--- a/ghost/admin/app/controllers/member.js
+++ b/ghost/admin/app/controllers/member.js
@@ -27,6 +27,9 @@ export default class MemberController extends Controller {
_previousLabels = null;
_previousNewsletters = null;
+ directlyFromAnalytics = false;
+ fromAnalytics = null;
+
constructor() {
super(...arguments);
this._availableLabels = this.store.peekAll('label');
diff --git a/ghost/admin/app/routes/member.js b/ghost/admin/app/routes/member.js
index 1171300588..f035470a61 100644
--- a/ghost/admin/app/routes/member.js
+++ b/ghost/admin/app/routes/member.js
@@ -34,6 +34,7 @@ export default class MembersRoute extends AdminRoute {
controller.fetchMemberTask.perform(member.id);
}
+ controller.directlyFromAnalytics = false;
if (transition.from?.name === 'posts.analytics') {
// Sadly transition.from.params is not reliable to use (not populated on transitions)
const oldParams = transition.router?.oldState?.params['posts.analytics'] ?? {};
@@ -41,6 +42,7 @@ export default class MembersRoute extends AdminRoute {
// We need to store analytics in 'this' to have it accessible for the member route
this.fromAnalytics = Object.values(oldParams);
controller.fromAnalytics = this.fromAnalytics;
+ controller.directlyFromAnalytics = true;
} else if (transition.from?.metadata?.fromAnalytics) {
// Handle returning from member route
const fromAnalytics = transition.from?.metadata.fromAnalytics ?? null;
diff --git a/ghost/admin/app/templates/member.hbs b/ghost/admin/app/templates/member.hbs
index b18b0cc219..cfc0f29196 100644
--- a/ghost/admin/app/templates/member.hbs
+++ b/ghost/admin/app/templates/member.hbs
@@ -10,10 +10,14 @@
Analytics
- {{svg-jar "arrow-right-small"}}
-
- Members
-
+
+ {{#unless this.directlyFromAnalytics}}
+ {{svg-jar "arrow-right-small"}}
+
+ Members
+
+ {{/unless}}
+
{{svg-jar "arrow-right-small"}} {{if this.member.isNew "New member" "Edit member"}}
{{else}}