poc - cal.com integration in onboarding flow (#12530)
This commit is contained in:
@ -0,0 +1 @@
|
||||
export const BOOK_CALL_MODAL_ID = 'book-call-modal';
|
||||
@ -0,0 +1,9 @@
|
||||
import { gql } from '@apollo/client';
|
||||
|
||||
export const SKIP_BOOK_ONBOARDING_STEP = gql`
|
||||
mutation SkipBookOnboardingStep {
|
||||
skipBookOnboardingStep {
|
||||
success
|
||||
}
|
||||
}
|
||||
`;
|
||||
@ -5,12 +5,14 @@ import {
|
||||
CurrentWorkspace,
|
||||
currentWorkspaceState,
|
||||
} from '@/auth/states/currentWorkspaceState';
|
||||
import { calendarBookingPageIdState } from '@/client-config/states/calendarBookingPageIdState';
|
||||
import { isDefined } from 'twenty-shared/utils';
|
||||
import { OnboardingStatus } from '~/generated/graphql';
|
||||
|
||||
const getNextOnboardingStatus = (
|
||||
currentUser: CurrentUser | null,
|
||||
currentWorkspace: CurrentWorkspace | null,
|
||||
calendarBookingPageId: string | null,
|
||||
) => {
|
||||
if (currentUser?.onboardingStatus === OnboardingStatus.WORKSPACE_ACTIVATION) {
|
||||
return OnboardingStatus.PROFILE_CREATION;
|
||||
@ -25,12 +27,21 @@ const getNextOnboardingStatus = (
|
||||
) {
|
||||
return OnboardingStatus.INVITE_TEAM;
|
||||
}
|
||||
if (currentUser?.onboardingStatus === OnboardingStatus.INVITE_TEAM) {
|
||||
return isDefined(calendarBookingPageId)
|
||||
? OnboardingStatus.BOOK_ONBOARDING
|
||||
: OnboardingStatus.COMPLETED;
|
||||
}
|
||||
if (currentUser?.onboardingStatus === OnboardingStatus.BOOK_ONBOARDING) {
|
||||
return OnboardingStatus.COMPLETED;
|
||||
}
|
||||
return OnboardingStatus.COMPLETED;
|
||||
};
|
||||
|
||||
export const useSetNextOnboardingStatus = () => {
|
||||
const currentUser = useRecoilValue(currentUserState);
|
||||
const currentWorkspace = useRecoilValue(currentWorkspaceState);
|
||||
const calendarBookingPageId = useRecoilValue(calendarBookingPageIdState);
|
||||
|
||||
return useRecoilCallback(
|
||||
({ set }) =>
|
||||
@ -38,6 +49,7 @@ export const useSetNextOnboardingStatus = () => {
|
||||
const nextOnboardingStatus = getNextOnboardingStatus(
|
||||
currentUser,
|
||||
currentWorkspace,
|
||||
calendarBookingPageId,
|
||||
);
|
||||
set(currentUserState, (current) => {
|
||||
if (isDefined(current)) {
|
||||
@ -49,6 +61,6 @@ export const useSetNextOnboardingStatus = () => {
|
||||
return current;
|
||||
});
|
||||
},
|
||||
[currentWorkspace, currentUser],
|
||||
[currentWorkspace, currentUser, calendarBookingPageId],
|
||||
);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user