5095 move onboardingstatus computation from frontend to backend (#5954)
- move front `onboardingStatus` computing to server side - add logic to `useSetNextOnboardingStatus` - update some missing redirections in `usePageChangeEffectNavigateLocation` - separate subscriptionStatus from onboardingStatus
This commit is contained in:
@ -8,7 +8,7 @@ import { ObjectMetadataItemsLoadEffect } from '@/object-metadata/components/Obje
|
||||
import { PreComputedChipGeneratorsContext } from '@/object-metadata/context/PreComputedChipGeneratorsContext';
|
||||
import { objectMetadataItemsState } from '@/object-metadata/states/objectMetadataItemsState';
|
||||
import { getRecordChipGeneratorPerObjectPerField } from '@/object-record/utils/getRecordChipGeneratorPerObjectPerField';
|
||||
import { mockedUsersData } from '~/testing/mock-data/users';
|
||||
import { mockedUserData } from '~/testing/mock-data/users';
|
||||
import { mockWorkspaceMembers } from '~/testing/mock-data/workspace-members';
|
||||
|
||||
export const ObjectMetadataItemsDecorator: Decorator = (Story) => {
|
||||
@ -20,7 +20,7 @@ export const ObjectMetadataItemsDecorator: Decorator = (Story) => {
|
||||
|
||||
useEffect(() => {
|
||||
setCurrentWorkspaceMember(mockWorkspaceMembers[0]);
|
||||
setCurrentUser(mockedUsersData[0]);
|
||||
setCurrentUser(mockedUserData);
|
||||
}, [setCurrentUser, setCurrentWorkspaceMember]);
|
||||
|
||||
const chipGeneratorPerObjectPerField = useMemo(() => {
|
||||
|
||||
@ -15,7 +15,7 @@ import { mockedClientConfig } from '~/testing/mock-data/config';
|
||||
import { mockedObjectMetadataItemsQueryResult } from '~/testing/mock-data/metadata';
|
||||
import { getPeopleMock } from '~/testing/mock-data/people';
|
||||
import { mockedRemoteTables } from '~/testing/mock-data/remote-tables';
|
||||
import { mockedUsersData } from '~/testing/mock-data/users';
|
||||
import { mockedUserData } from '~/testing/mock-data/users';
|
||||
import { mockedViewsData } from '~/testing/mock-data/views';
|
||||
import { mockWorkspaceMembers } from '~/testing/mock-data/workspace-members';
|
||||
|
||||
@ -35,7 +35,7 @@ export const graphqlMocks = {
|
||||
graphql.query(getOperationName(GET_CURRENT_USER) ?? '', () => {
|
||||
return HttpResponse.json({
|
||||
data: {
|
||||
currentUser: mockedUsersData[0],
|
||||
currentUser: mockedUserData,
|
||||
},
|
||||
});
|
||||
}),
|
||||
|
||||
@ -38,4 +38,5 @@ export const mockedClientConfig: ClientConfig = {
|
||||
siteKey: 'MOCKED_SITE_KEY',
|
||||
__typename: 'Captcha',
|
||||
},
|
||||
api: { mutationMaximumAffectedRecords: 100 },
|
||||
};
|
||||
|
||||
@ -1,5 +1,11 @@
|
||||
import { WorkspaceMember } from '@/workspace-member/types/WorkspaceMember';
|
||||
import { User, Workspace } from '~/generated/graphql';
|
||||
import {
|
||||
OnboardingStatus,
|
||||
SubscriptionInterval,
|
||||
SubscriptionStatus,
|
||||
User,
|
||||
Workspace,
|
||||
} from '~/generated/graphql';
|
||||
|
||||
type MockedUser = Pick<
|
||||
User,
|
||||
@ -10,7 +16,7 @@ type MockedUser = Pick<
|
||||
| 'canImpersonate'
|
||||
| '__typename'
|
||||
| 'supportUserHash'
|
||||
| 'onboardingStep'
|
||||
| 'onboardingStatus'
|
||||
> & {
|
||||
workspaceMember: WorkspaceMember | null;
|
||||
locale: string;
|
||||
@ -30,7 +36,6 @@ export const mockDefaultWorkspace: Workspace = {
|
||||
inviteHash: 'twenty.com-invite-hash',
|
||||
logo: workspaceLogoUrl,
|
||||
allowImpersonation: true,
|
||||
subscriptionStatus: 'active',
|
||||
activationStatus: 'active',
|
||||
featureFlags: [
|
||||
{
|
||||
@ -58,8 +63,8 @@ export const mockDefaultWorkspace: Workspace = {
|
||||
currentBillingSubscription: {
|
||||
__typename: 'BillingSubscription',
|
||||
id: '7efbc3f7-6e5e-4128-957e-8d86808cdf6a',
|
||||
interval: 'month',
|
||||
status: 'active',
|
||||
interval: SubscriptionInterval.Month,
|
||||
status: SubscriptionStatus.Active,
|
||||
},
|
||||
};
|
||||
|
||||
@ -79,49 +84,26 @@ export const mockedWorkspaceMemberData: WorkspaceMember = {
|
||||
userEmail: 'charles@test.com',
|
||||
};
|
||||
|
||||
export const mockedUsersData: Array<MockedUser> = [
|
||||
{
|
||||
id: '7dfbc3f7-6e5e-4128-957e-8d86808cdf6d',
|
||||
__typename: 'User',
|
||||
email: 'charles@test.com',
|
||||
firstName: 'Charles',
|
||||
lastName: 'Test',
|
||||
canImpersonate: false,
|
||||
supportUserHash:
|
||||
'a95afad9ff6f0b364e2a3fd3e246a1a852c22b6e55a3ca33745a86c201f9c10d',
|
||||
workspaceMember: mockedWorkspaceMemberData,
|
||||
defaultWorkspace: mockDefaultWorkspace,
|
||||
locale: 'en',
|
||||
workspaces: [{ workspace: mockDefaultWorkspace }],
|
||||
onboardingStep: null,
|
||||
},
|
||||
{
|
||||
id: '7dfbc3f7-6e5e-4128-957e-8d86808cdf6c',
|
||||
__typename: 'User',
|
||||
email: 'felix@test.com',
|
||||
firstName: 'Felix',
|
||||
lastName: 'Test',
|
||||
canImpersonate: false,
|
||||
supportUserHash:
|
||||
'54ac3986035961724cdb9a7a30c70e6463a4b68f0ecd2014c727171a82144b74',
|
||||
workspaceMember: {
|
||||
...mockedWorkspaceMemberData,
|
||||
id: '7dfbc3f7-6e5e-4128-957e-8d86808cdf6c',
|
||||
name: {
|
||||
firstName: 'Felix',
|
||||
lastName: 'Test',
|
||||
},
|
||||
userId: '81aeb270-d689-4515-bd5d-35dbe956da3b',
|
||||
},
|
||||
defaultWorkspace: mockDefaultWorkspace,
|
||||
locale: 'en',
|
||||
workspaces: [{ workspace: mockDefaultWorkspace }],
|
||||
onboardingStep: null,
|
||||
},
|
||||
];
|
||||
export const mockedUserData: MockedUser = {
|
||||
id: '7dfbc3f7-6e5e-4128-957e-8d86808cdf6d',
|
||||
__typename: 'User',
|
||||
email: 'charles@test.com',
|
||||
firstName: 'Charles',
|
||||
lastName: 'Test',
|
||||
canImpersonate: false,
|
||||
supportUserHash:
|
||||
'a95afad9ff6f0b364e2a3fd3e246a1a852c22b6e55a3ca33745a86c201f9c10d',
|
||||
workspaceMember: mockedWorkspaceMemberData,
|
||||
defaultWorkspace: mockDefaultWorkspace,
|
||||
locale: 'en',
|
||||
workspaces: [{ workspace: mockDefaultWorkspace }],
|
||||
onboardingStatus: OnboardingStatus.Completed,
|
||||
};
|
||||
|
||||
export const mockedOnboardingUsersData: Array<MockedUser> = [
|
||||
{
|
||||
export const mockedOnboardingUserData = (
|
||||
onboardingStatus?: OnboardingStatus,
|
||||
) => {
|
||||
return {
|
||||
id: '7dfbc3f7-6e5e-4128-957e-8d86808cdf6d',
|
||||
__typename: 'User',
|
||||
email: 'workspace-onboarding@test.com',
|
||||
@ -130,35 +112,10 @@ export const mockedOnboardingUsersData: Array<MockedUser> = [
|
||||
canImpersonate: false,
|
||||
supportUserHash:
|
||||
'4fb61d34ed3a4aeda2476d4b308b5162db9e1809b2b8277e6fdc6efc4a609254',
|
||||
workspaceMember: {
|
||||
...mockedWorkspaceMemberData,
|
||||
id: 'd454f075-c72f-4ebe-bac7-d28e75e74a23',
|
||||
name: {
|
||||
firstName: '',
|
||||
lastName: '',
|
||||
},
|
||||
|
||||
userId: '7f793378-b939-43b7-8642-292c9510754c',
|
||||
},
|
||||
workspaceMember: null,
|
||||
defaultWorkspace: mockDefaultWorkspace,
|
||||
locale: 'en',
|
||||
workspaces: [{ workspace: mockDefaultWorkspace }],
|
||||
onboardingStep: null,
|
||||
},
|
||||
{
|
||||
id: '7dfbc3f7-6e5e-4128-957e-8d86808cdf6d',
|
||||
__typename: 'User',
|
||||
email: 'profile-onboarding@test.com',
|
||||
firstName: '',
|
||||
lastName: '',
|
||||
canImpersonate: false,
|
||||
workspaceMember: null,
|
||||
defaultWorkspace: {
|
||||
...mockDefaultWorkspace,
|
||||
activationStatus: 'inactive',
|
||||
},
|
||||
locale: 'en',
|
||||
workspaces: [{ workspace: mockDefaultWorkspace }],
|
||||
onboardingStep: null,
|
||||
},
|
||||
];
|
||||
onboardingStatus: onboardingStatus || null,
|
||||
};
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user