mirror of
https://github.com/n8n-io/n8n.git
synced 2025-02-21 02:56:40 -08:00
fix: Send user id when setting up an account (#8639)
This commit is contained in:
parent
c0be43bdbe
commit
27f3166272
|
@ -12,7 +12,7 @@ export async function fetchNextOnboardingPrompt(
|
||||||
return await get(N8N_API_BASE_URL, ONBOARDING_PROMPTS_ENDPOINT, {
|
return await get(N8N_API_BASE_URL, ONBOARDING_PROMPTS_ENDPOINT, {
|
||||||
instance_id: instanceId,
|
instance_id: instanceId,
|
||||||
user_id: `${instanceId}#${currentUser.id}`,
|
user_id: `${instanceId}#${currentUser.id}`,
|
||||||
is_owner: currentUser.isOwner,
|
is_owner: currentUser.isOwner ?? false,
|
||||||
survey_results: currentUser.personalizationAnswers,
|
survey_results: currentUser.personalizationAnswers,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -757,29 +757,32 @@ export default defineComponent({
|
||||||
getAccountAge(this.usersStore.currentUser || ({} as IUser)) <= ONBOARDING_PROMPT_TIMEBOX
|
getAccountAge(this.usersStore.currentUser || ({} as IUser)) <= ONBOARDING_PROMPT_TIMEBOX
|
||||||
) {
|
) {
|
||||||
const onboardingResponse = await this.uiStore.getNextOnboardingPrompt();
|
const onboardingResponse = await this.uiStore.getNextOnboardingPrompt();
|
||||||
|
|
||||||
|
if (!onboardingResponse) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
const promptTimeout =
|
const promptTimeout =
|
||||||
onboardingResponse.toast_sequence_number === 1 ? FIRST_ONBOARDING_PROMPT_TIMEOUT : 1000;
|
onboardingResponse.toast_sequence_number === 1 ? FIRST_ONBOARDING_PROMPT_TIMEOUT : 1000;
|
||||||
|
|
||||||
if (onboardingResponse.title && onboardingResponse.description) {
|
setTimeout(async () => {
|
||||||
setTimeout(async () => {
|
this.showToast({
|
||||||
this.showToast({
|
type: 'info',
|
||||||
type: 'info',
|
title: onboardingResponse.title,
|
||||||
title: onboardingResponse.title,
|
message: onboardingResponse.description,
|
||||||
message: onboardingResponse.description,
|
duration: 0,
|
||||||
duration: 0,
|
customClass: 'clickable',
|
||||||
customClass: 'clickable',
|
closeOnClick: true,
|
||||||
closeOnClick: true,
|
onClick: () => {
|
||||||
onClick: () => {
|
this.$telemetry.track('user clicked onboarding toast', {
|
||||||
this.$telemetry.track('user clicked onboarding toast', {
|
seq_num: onboardingResponse.toast_sequence_number,
|
||||||
seq_num: onboardingResponse.toast_sequence_number,
|
title: onboardingResponse.title,
|
||||||
title: onboardingResponse.title,
|
description: onboardingResponse.description,
|
||||||
description: onboardingResponse.description,
|
});
|
||||||
});
|
this.uiStore.openModal(ONBOARDING_CALL_SIGNUP_MODAL_KEY);
|
||||||
this.uiStore.openModal(ONBOARDING_CALL_SIGNUP_MODAL_KEY);
|
},
|
||||||
},
|
});
|
||||||
});
|
}, promptTimeout);
|
||||||
}, promptTimeout);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
|
@ -46,7 +46,6 @@ import type {
|
||||||
IFakeDoorLocation,
|
IFakeDoorLocation,
|
||||||
INodeUi,
|
INodeUi,
|
||||||
IOnboardingCallPrompt,
|
IOnboardingCallPrompt,
|
||||||
IUser,
|
|
||||||
UIState,
|
UIState,
|
||||||
UTMCampaign,
|
UTMCampaign,
|
||||||
XYPosition,
|
XYPosition,
|
||||||
|
@ -66,6 +65,7 @@ import { useWorkflowsStore } from '@/stores/workflows.store';
|
||||||
import { useSettingsStore } from '@/stores/settings.store';
|
import { useSettingsStore } from '@/stores/settings.store';
|
||||||
import { hasPermission } from '@/rbac/permissions';
|
import { hasPermission } from '@/rbac/permissions';
|
||||||
import { useTelemetryStore } from '@/stores/telemetry.store';
|
import { useTelemetryStore } from '@/stores/telemetry.store';
|
||||||
|
import { useUsersStore } from '@/stores/users.store';
|
||||||
import { dismissBannerPermanently } from '@/api/ui';
|
import { dismissBannerPermanently } from '@/api/ui';
|
||||||
import type { BannerName } from 'n8n-workflow';
|
import type { BannerName } from 'n8n-workflow';
|
||||||
import {
|
import {
|
||||||
|
@ -75,7 +75,6 @@ import {
|
||||||
isValidTheme,
|
isValidTheme,
|
||||||
updateTheme,
|
updateTheme,
|
||||||
} from './ui.utils';
|
} from './ui.utils';
|
||||||
import { useUsersStore } from './users.store';
|
|
||||||
|
|
||||||
let savedTheme: ThemeOption = 'system';
|
let savedTheme: ThemeOption = 'system';
|
||||||
try {
|
try {
|
||||||
|
@ -468,26 +467,37 @@ export const useUIStore = defineStore(STORES.UI, {
|
||||||
this.setMode(CREDENTIAL_EDIT_MODAL_KEY, 'new');
|
this.setMode(CREDENTIAL_EDIT_MODAL_KEY, 'new');
|
||||||
this.openModal(CREDENTIAL_EDIT_MODAL_KEY);
|
this.openModal(CREDENTIAL_EDIT_MODAL_KEY);
|
||||||
},
|
},
|
||||||
async getNextOnboardingPrompt(): Promise<IOnboardingCallPrompt> {
|
async getNextOnboardingPrompt(): Promise<IOnboardingCallPrompt | null> {
|
||||||
const rootStore = useRootStore();
|
const rootStore = useRootStore();
|
||||||
const instanceId = rootStore.instanceId;
|
const instanceId = rootStore.instanceId;
|
||||||
// TODO: current USER
|
const { currentUser } = useUsersStore();
|
||||||
const currentUser = {} as IUser;
|
if (currentUser) {
|
||||||
return await fetchNextOnboardingPrompt(instanceId, currentUser);
|
return await fetchNextOnboardingPrompt(instanceId, currentUser);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
},
|
},
|
||||||
async applyForOnboardingCall(email: string): Promise<string> {
|
async applyForOnboardingCall(email: string): Promise<string | null> {
|
||||||
const rootStore = useRootStore();
|
const rootStore = useRootStore();
|
||||||
const instanceId = rootStore.instanceId;
|
const instanceId = rootStore.instanceId;
|
||||||
// TODO: current USER
|
const { currentUser } = useUsersStore();
|
||||||
const currentUser = {} as IUser;
|
if (currentUser) {
|
||||||
return await applyForOnboardingCall(instanceId, currentUser, email);
|
return await applyForOnboardingCall(instanceId, currentUser, email);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
},
|
},
|
||||||
async submitContactEmail(email: string, agree: boolean): Promise<string> {
|
async submitContactEmail(email: string, agree: boolean): Promise<string | null> {
|
||||||
const rootStore = useRootStore();
|
const rootStore = useRootStore();
|
||||||
const instanceId = rootStore.instanceId;
|
const instanceId = rootStore.instanceId;
|
||||||
// TODO: current USER
|
const { currentUser } = useUsersStore();
|
||||||
const currentUser = {} as IUser;
|
if (currentUser) {
|
||||||
return await submitEmailOnSignup(instanceId, currentUser, email || currentUser.email, agree);
|
return await submitEmailOnSignup(
|
||||||
|
instanceId,
|
||||||
|
currentUser,
|
||||||
|
email ?? currentUser?.email,
|
||||||
|
agree,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
},
|
},
|
||||||
openCommunityPackageUninstallConfirmModal(packageName: string) {
|
openCommunityPackageUninstallConfirmModal(packageName: string) {
|
||||||
this.setActiveId(COMMUNITY_PACKAGE_CONFIRM_MODAL_KEY, packageName);
|
this.setActiveId(COMMUNITY_PACKAGE_CONFIRM_MODAL_KEY, packageName);
|
||||||
|
|
|
@ -869,9 +869,9 @@ export default defineComponent({
|
||||||
) {
|
) {
|
||||||
const onboardingResponse = await this.uiStore.getNextOnboardingPrompt();
|
const onboardingResponse = await this.uiStore.getNextOnboardingPrompt();
|
||||||
const promptTimeout =
|
const promptTimeout =
|
||||||
onboardingResponse.toast_sequence_number === 1 ? FIRST_ONBOARDING_PROMPT_TIMEOUT : 1000;
|
onboardingResponse?.toast_sequence_number === 1 ? FIRST_ONBOARDING_PROMPT_TIMEOUT : 1000;
|
||||||
|
|
||||||
if (onboardingResponse.title && onboardingResponse.description) {
|
if (onboardingResponse?.title && onboardingResponse?.description) {
|
||||||
setTimeout(async () => {
|
setTimeout(async () => {
|
||||||
this.showToast({
|
this.showToast({
|
||||||
type: 'info',
|
type: 'info',
|
||||||
|
|
Loading…
Reference in a new issue