From afd7d12dde02a3bd6ed627530a872b9a94a789f5 Mon Sep 17 00:00:00 2001 From: Dimitrie Stefanescu Date: Mon, 31 Jan 2022 19:16:38 +0000 Subject: [PATCH 1/2] feat(frontend): various tweaks --- packages/frontend/src/auth-helpers.js | 8 +++++++- packages/frontend/src/cleanup/Main.vue | 2 ++ .../src/cleanup/components/user/UserDeleteCard.vue | 2 +- packages/frontend/src/cleanup/pages/user/ProfileSelf.vue | 3 +-- .../frontend/src/components/UserAvatarAuthoriseApp.vue | 2 +- packages/frontend/src/components/UserDeleteCard.vue | 2 +- packages/frontend/src/plugins/helpers.js | 9 +++++++++ 7 files changed, 22 insertions(+), 6 deletions(-) diff --git a/packages/frontend/src/auth-helpers.js b/packages/frontend/src/auth-helpers.js index a99c66bd3..ce42625ff 100644 --- a/packages/frontend/src/auth-helpers.js +++ b/packages/frontend/src/auth-helpers.js @@ -80,7 +80,7 @@ export async function getTokenFromAccessCode(accessCode) { * Signs out the current session * @return {null} */ -export async function signOut() { +export async function signOut(mixpanelInstance) { await fetch('/auth/logout', { method: 'POST', headers: { @@ -96,9 +96,15 @@ export async function signOut() { localStorage.removeItem('RefreshToken') localStorage.removeItem('suuid') localStorage.removeItem('uuid') + localStorage.removeItem('distinct_id') + localStorage.removeItem('stcount') localStorage.removeItem('onboarding') window.location = '/' + + if (mixpanelInstance) { + mixpanelInstance.track('Log Out', { type: 'action', hostApp: 'web' }) + } } export async function refreshToken() { diff --git a/packages/frontend/src/cleanup/Main.vue b/packages/frontend/src/cleanup/Main.vue index 58e268315..b6b26030f 100644 --- a/packages/frontend/src/cleanup/Main.vue +++ b/packages/frontend/src/cleanup/Main.vue @@ -144,6 +144,8 @@ export default { } this.$mixpanel.track('Visit Web App') + + this.$mixpanel.mixpanel.register({ server_id: this.$mixpanelServerId }) }, methods: { switchTheme() { diff --git a/packages/frontend/src/cleanup/components/user/UserDeleteCard.vue b/packages/frontend/src/cleanup/components/user/UserDeleteCard.vue index 16f844921..fe9ac006e 100644 --- a/packages/frontend/src/cleanup/components/user/UserDeleteCard.vue +++ b/packages/frontend/src/cleanup/components/user/UserDeleteCard.vue @@ -67,7 +67,7 @@ export default { }) .then(() => { this.isLoading = false - signOut() + signOut(this.$mixpanel) }) }) } diff --git a/packages/frontend/src/cleanup/pages/user/ProfileSelf.vue b/packages/frontend/src/cleanup/pages/user/ProfileSelf.vue index 780ff8b26..a2b0435a0 100644 --- a/packages/frontend/src/cleanup/pages/user/ProfileSelf.vue +++ b/packages/frontend/src/cleanup/pages/user/ProfileSelf.vue @@ -72,8 +72,7 @@ export default { this.$apollo.queries.user.refetch() }, signOut() { - this.$mixpanel.track('Log Out', { type: 'action', hostApp: 'web' }) - signOut() + signOut(this.$mixpanel) } } } diff --git a/packages/frontend/src/components/UserAvatarAuthoriseApp.vue b/packages/frontend/src/components/UserAvatarAuthoriseApp.vue index fa08ba27f..e68df473c 100644 --- a/packages/frontend/src/components/UserAvatarAuthoriseApp.vue +++ b/packages/frontend/src/components/UserAvatarAuthoriseApp.vue @@ -45,7 +45,7 @@ export default { }, methods: { signOut() { - signOut() + signOut(this.$mixpanel) } } } diff --git a/packages/frontend/src/components/UserDeleteCard.vue b/packages/frontend/src/components/UserDeleteCard.vue index 8f1092cf7..24a2f5f68 100644 --- a/packages/frontend/src/components/UserDeleteCard.vue +++ b/packages/frontend/src/components/UserDeleteCard.vue @@ -71,7 +71,7 @@ export default { }) .then(() => { this.isLoading = false - signOut() + signOut(this.$mixpanel) }) }) } diff --git a/packages/frontend/src/plugins/helpers.js b/packages/frontend/src/plugins/helpers.js index af555f800..abff4db3c 100644 --- a/packages/frontend/src/plugins/helpers.js +++ b/packages/frontend/src/plugins/helpers.js @@ -1,4 +1,5 @@ import Vue from 'vue' +import crypto from 'crypto' Vue.prototype.$userId = function () { return localStorage.getItem('uuid') @@ -8,6 +9,14 @@ Vue.prototype.$mixpanelId = function () { return localStorage.getItem('distinct_id') } +Vue.prototype.$mixpanelServerId = function () { + return crypto + .createHash('md5') + .update(window.location.hostname.toLowerCase()) + .digest('hex') + .toUpperCase() +} + Vue.prototype.$loggedIn = function () { return localStorage.getItem('uuid') !== null } From c892b0b9ca594a89d5fe92e229cd8b389d31ed80 Mon Sep 17 00:00:00 2001 From: Dimitrie Stefanescu Date: Mon, 31 Jan 2022 19:20:10 +0000 Subject: [PATCH 2/2] feat(frontend): final tweaks --- packages/frontend/src/auth-helpers.js | 1 + packages/frontend/src/cleanup/Main.vue | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/frontend/src/auth-helpers.js b/packages/frontend/src/auth-helpers.js index ce42625ff..036f0715c 100644 --- a/packages/frontend/src/auth-helpers.js +++ b/packages/frontend/src/auth-helpers.js @@ -104,6 +104,7 @@ export async function signOut(mixpanelInstance) { if (mixpanelInstance) { mixpanelInstance.track('Log Out', { type: 'action', hostApp: 'web' }) + mixpanelInstance.reset() } } diff --git a/packages/frontend/src/cleanup/Main.vue b/packages/frontend/src/cleanup/Main.vue index b6b26030f..9d3ca20fc 100644 --- a/packages/frontend/src/cleanup/Main.vue +++ b/packages/frontend/src/cleanup/Main.vue @@ -145,7 +145,7 @@ export default { this.$mixpanel.track('Visit Web App') - this.$mixpanel.mixpanel.register({ server_id: this.$mixpanelServerId }) + this.$mixpanel.register({ server_id: this.$mixpanelServerId }) }, methods: { switchTheme() {