From 44523a0392daae4a1b31f86dd0508be0339cca75 Mon Sep 17 00:00:00 2001 From: Shariq Ansari Date: Mon, 19 May 2025 16:44:42 +0530 Subject: [PATCH] fix: store firstLead & firstDeal per user --- frontend/src/components/Layouts/AppSidebar.vue | 6 ++++-- frontend/src/components/Modals/LeadModal.vue | 4 +++- frontend/src/pages/Lead.vue | 4 +++- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/frontend/src/components/Layouts/AppSidebar.vue b/frontend/src/components/Layouts/AppSidebar.vue index 81fa3cfd..f73a4564 100644 --- a/frontend/src/components/Layouts/AppSidebar.vue +++ b/frontend/src/components/Layouts/AppSidebar.vue @@ -169,6 +169,7 @@ import { notificationsStore, } from '@/stores/notifications' import { usersStore } from '@/stores/users' +import { sessionStore } from '@/stores/session' import { showSettings, activeSettingsPage } from '@/composables/settings' import { FeatherIcon, call } from 'frappe-ui' import { @@ -300,17 +301,18 @@ function getIcon(routeName, icon) { } // onboarding +const { user } = sessionStore() const { users, isManager } = usersStore() const { isOnboardingStepsCompleted, setUp } = useOnboarding('frappecrm') async function getFirstLead() { - let firstLead = localStorage.getItem('firstLead') + let firstLead = localStorage.getItem('firstLead' + user) if (firstLead) return firstLead return await call('crm.api.onboarding.get_first_lead') } async function getFirstDeal() { - let firstDeal = localStorage.getItem('firstDeal') + let firstDeal = localStorage.getItem('firstDeal' + user) if (firstDeal) return firstDeal return await call('crm.api.onboarding.get_first_deal') } diff --git a/frontend/src/components/Modals/LeadModal.vue b/frontend/src/components/Modals/LeadModal.vue index 95e0add2..0950b401 100644 --- a/frontend/src/components/Modals/LeadModal.vue +++ b/frontend/src/components/Modals/LeadModal.vue @@ -46,6 +46,7 @@ import EditIcon from '@/components/Icons/EditIcon.vue' import FieldLayout from '@/components/FieldLayout/FieldLayout.vue' import { usersStore } from '@/stores/users' import { statusesStore } from '@/stores/statuses' +import { sessionStore } from '@/stores/session' import { isMobileView } from '@/composables/settings' import { capture } from '@/telemetry' import { createResource } from 'frappe-ui' @@ -57,6 +58,7 @@ const props = defineProps({ defaults: Object, }) +const { user } = sessionStore() const { getUser, isManager } = usersStore() const { getLeadStatus, statusOptions } = statusesStore() const { updateOnboardingStep } = useOnboarding('frappecrm') @@ -169,7 +171,7 @@ function createNewLead() { show.value = false router.push({ name: 'Lead', params: { leadId: data.name } }) updateOnboardingStep('create_first_lead', true, false, () => { - localStorage.setItem('firstLead', data.name) + localStorage.setItem('firstLead' + user, data.name) }) }, onError(err) { diff --git a/frontend/src/pages/Lead.vue b/frontend/src/pages/Lead.vue index 502aff25..dd0229b6 100644 --- a/frontend/src/pages/Lead.vue +++ b/frontend/src/pages/Lead.vue @@ -352,6 +352,7 @@ import { } from '@/utils' import { getView } from '@/utils/view' import { getSettings } from '@/stores/settings' +import { sessionStore } from '@/stores/session' import { usersStore } from '@/stores/users' import { globalStore } from '@/stores/global' import { statusesStore } from '@/stores/statuses' @@ -380,6 +381,7 @@ import { useRouter, useRoute } from 'vue-router' import { useActiveTabManager } from '@/composables/useActiveTabManager' const { brand } = getSettings() +const { user } = sessionStore() const { isManager } = usersStore() const { $dialog, $socket, makeCall } = globalStore() const { statusOptions, getLeadStatus, getDealStatus } = statusesStore() @@ -675,7 +677,7 @@ async function convertToDeal() { existingContact.value = '' existingOrganization.value = '' updateOnboardingStep('convert_lead_to_deal', true, false, () => { - localStorage.setItem('firstDeal', _deal) + localStorage.setItem('firstDeal' + user, _deal) }) capture('convert_lead_to_deal') router.push({ name: 'Deal', params: { dealId: _deal } })