diff --git a/packages/twenty-front/src/modules/auth/states/isWorkspaceSchemaCreated.ts b/packages/twenty-front/src/modules/auth/states/isWorkspaceSchemaCreated.ts deleted file mode 100644 index 57b436a21df..00000000000 --- a/packages/twenty-front/src/modules/auth/states/isWorkspaceSchemaCreated.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { atom } from 'recoil'; - -export const isWorkspaceSchemaCreatedState = atom({ - key: 'isWorkspaceSchemaCreatedState', - default: null, -}); diff --git a/packages/twenty-front/src/modules/auth/utils/getOnboardingStatus.ts b/packages/twenty-front/src/modules/auth/utils/getOnboardingStatus.ts index 8b8ce3de042..bf8414d84d1 100644 --- a/packages/twenty-front/src/modules/auth/utils/getOnboardingStatus.ts +++ b/packages/twenty-front/src/modules/auth/utils/getOnboardingStatus.ts @@ -6,6 +6,7 @@ export enum OnboardingStatus { Canceled = 'canceled', OngoingUserCreation = 'ongoing_user_creation', OngoingWorkspaceCreation = 'ongoing_workspace_creation', + OngoingWorkspaceActivation = 'ongoing_workspace_activation', OngoingProfileCreation = 'ongoing_profile_creation', Completed = 'completed', } @@ -44,7 +45,7 @@ export const getOnboardingStatus = ({ } if (!currentWorkspaceMember) { - return undefined; + return OnboardingStatus.OngoingWorkspaceActivation; } if ( diff --git a/packages/twenty-front/src/modules/object-metadata/components/ObjectMetadataItemsProvider.tsx b/packages/twenty-front/src/modules/object-metadata/components/ObjectMetadataItemsProvider.tsx index 0d65a2355bd..46dde948374 100644 --- a/packages/twenty-front/src/modules/object-metadata/components/ObjectMetadataItemsProvider.tsx +++ b/packages/twenty-front/src/modules/object-metadata/components/ObjectMetadataItemsProvider.tsx @@ -1,6 +1,7 @@ import { useRecoilValue } from 'recoil'; -import { isWorkspaceSchemaCreatedState } from '@/auth/states/isWorkspaceSchemaCreated'; +import { useOnboardingStatus } from '@/auth/hooks/useOnboardingStatus'; +import { OnboardingStatus } from '@/auth/utils/getOnboardingStatus'; import { ObjectMetadataItemsLoadEffect } from '@/object-metadata/components/ObjectMetadataItemsLoadEffect'; import { objectMetadataItemsState } from '@/object-metadata/states/objectMetadataItemsState'; import { RelationPickerScope } from '@/object-record/relation-picker/scopes/RelationPickerScope'; @@ -9,14 +10,13 @@ export const ObjectMetadataItemsProvider = ({ children, }: React.PropsWithChildren) => { const objectMetadataItems = useRecoilValue(objectMetadataItemsState); - const isWorkspaceSchemaCreated = useRecoilValue( - isWorkspaceSchemaCreatedState, - ); + const onboardingStatus = useOnboardingStatus(); return ( <> - {(!isWorkspaceSchemaCreated || !!objectMetadataItems.length) && ( + {(onboardingStatus !== OnboardingStatus.Completed || + !!objectMetadataItems.length) && ( {children} diff --git a/packages/twenty-front/src/modules/object-metadata/hooks/useObjectMetadataItem.ts b/packages/twenty-front/src/modules/object-metadata/hooks/useObjectMetadataItem.ts index e83b43aa501..c45d08bf65d 100644 --- a/packages/twenty-front/src/modules/object-metadata/hooks/useObjectMetadataItem.ts +++ b/packages/twenty-front/src/modules/object-metadata/hooks/useObjectMetadataItem.ts @@ -1,7 +1,8 @@ import { gql } from '@apollo/client'; import { useRecoilValue } from 'recoil'; -import { isWorkspaceSchemaCreatedState } from '@/auth/states/isWorkspaceSchemaCreated'; +import { useOnboardingStatus } from '@/auth/hooks/useOnboardingStatus'; +import { OnboardingStatus } from '@/auth/utils/getOnboardingStatus'; import { ObjectMetadataItemNotFoundError } from '@/object-metadata/errors/ObjectMetadataNotFoundError'; import { useGetObjectOrderByField } from '@/object-metadata/hooks/useGetObjectOrderByField'; import { useMapToObjectRecordIdentifier } from '@/object-metadata/hooks/useMapToObjectRecordIdentifier'; @@ -40,9 +41,7 @@ export const useObjectMetadataItem = ( { objectNameSingular }: ObjectMetadataItemIdentifier, depth?: number, ) => { - const isWorkspaceSchemaCreated = useRecoilValue( - isWorkspaceSchemaCreatedState, - ); + const onboardingStatus = useOnboardingStatus(); const mockObjectMetadataItems = getObjectMetadataItemsMock(); let objectMetadataItem = useRecoilValue( @@ -54,7 +53,7 @@ export const useObjectMetadataItem = ( let objectMetadataItems = useRecoilValue(objectMetadataItemsState); - if (!isWorkspaceSchemaCreated) { + if (onboardingStatus !== OnboardingStatus.Completed) { objectMetadataItem = mockObjectMetadataItems.find( (objectMetadataItem) => diff --git a/packages/twenty-front/src/modules/object-metadata/hooks/useObjectMetadataItemOnly.ts b/packages/twenty-front/src/modules/object-metadata/hooks/useObjectMetadataItemOnly.ts index ae132c16ba6..9680bee3482 100644 --- a/packages/twenty-front/src/modules/object-metadata/hooks/useObjectMetadataItemOnly.ts +++ b/packages/twenty-front/src/modules/object-metadata/hooks/useObjectMetadataItemOnly.ts @@ -1,6 +1,7 @@ import { useRecoilValue } from 'recoil'; -import { isWorkspaceSchemaCreatedState } from '@/auth/states/isWorkspaceSchemaCreated'; +import { useOnboardingStatus } from '@/auth/hooks/useOnboardingStatus'; +import { OnboardingStatus } from '@/auth/utils/getOnboardingStatus'; import { ObjectMetadataItemNotFoundError } from '@/object-metadata/errors/ObjectMetadataNotFoundError'; import { objectMetadataItemFamilySelector } from '@/object-metadata/states/objectMetadataItemFamilySelector'; import { objectMetadataItemsState } from '@/object-metadata/states/objectMetadataItemsState'; @@ -12,9 +13,7 @@ import { ObjectMetadataItemIdentifier } from '../types/ObjectMetadataItemIdentif export const useObjectMetadataItemOnly = ({ objectNameSingular, }: ObjectMetadataItemIdentifier) => { - const isWorkspaceSchemaCreated = useRecoilValue( - isWorkspaceSchemaCreatedState, - ); + const onboardingStatus = useOnboardingStatus(); const mockObjectMetadataItems = getObjectMetadataItemsMock(); let objectMetadataItem = useRecoilValue( @@ -26,7 +25,7 @@ export const useObjectMetadataItemOnly = ({ let objectMetadataItems = useRecoilValue(objectMetadataItemsState); - if (!isWorkspaceSchemaCreated) { + if (onboardingStatus !== OnboardingStatus.Completed) { objectMetadataItem = mockObjectMetadataItems.find( (objectMetadataItem) => diff --git a/packages/twenty-front/src/modules/object-metadata/hooks/useObjectNamePluralFromSingular.ts b/packages/twenty-front/src/modules/object-metadata/hooks/useObjectNamePluralFromSingular.ts index a3df0544e18..06c7aa0d207 100644 --- a/packages/twenty-front/src/modules/object-metadata/hooks/useObjectNamePluralFromSingular.ts +++ b/packages/twenty-front/src/modules/object-metadata/hooks/useObjectNamePluralFromSingular.ts @@ -1,6 +1,7 @@ import { useRecoilValue } from 'recoil'; -import { isWorkspaceSchemaCreatedState } from '@/auth/states/isWorkspaceSchemaCreated'; +import { useOnboardingStatus } from '@/auth/hooks/useOnboardingStatus'; +import { OnboardingStatus } from '@/auth/utils/getOnboardingStatus'; import { objectMetadataItemFamilySelector } from '@/object-metadata/states/objectMetadataItemFamilySelector'; import { getObjectMetadataItemsMock } from '@/object-metadata/utils/getObjectMetadataItemsMock'; import { isDefined } from '~/utils/isDefined'; @@ -10,9 +11,7 @@ export const useObjectNamePluralFromSingular = ({ }: { objectNameSingular: string; }) => { - const isWorkspaceSchemaCreated = useRecoilValue( - isWorkspaceSchemaCreatedState, - ); + const onboardingStatus = useOnboardingStatus(); const mockObjectMetadataItems = getObjectMetadataItemsMock(); let objectMetadataItem = useRecoilValue( @@ -22,7 +21,7 @@ export const useObjectNamePluralFromSingular = ({ }), ); - if (!isWorkspaceSchemaCreated) { + if (onboardingStatus !== OnboardingStatus.Completed) { objectMetadataItem = mockObjectMetadataItems.find( (objectMetadataItem) => diff --git a/packages/twenty-front/src/modules/object-metadata/hooks/useObjectNameSingularFromPlural.ts b/packages/twenty-front/src/modules/object-metadata/hooks/useObjectNameSingularFromPlural.ts index fd7f3253a0d..a9502633a3b 100644 --- a/packages/twenty-front/src/modules/object-metadata/hooks/useObjectNameSingularFromPlural.ts +++ b/packages/twenty-front/src/modules/object-metadata/hooks/useObjectNameSingularFromPlural.ts @@ -1,6 +1,7 @@ import { useRecoilValue } from 'recoil'; -import { isWorkspaceSchemaCreatedState } from '@/auth/states/isWorkspaceSchemaCreated'; +import { useOnboardingStatus } from '@/auth/hooks/useOnboardingStatus'; +import { OnboardingStatus } from '@/auth/utils/getOnboardingStatus'; import { objectMetadataItemFamilySelector } from '@/object-metadata/states/objectMetadataItemFamilySelector'; import { getObjectMetadataItemsMock } from '@/object-metadata/utils/getObjectMetadataItemsMock'; import { isDefined } from '~/utils/isDefined'; @@ -10,9 +11,7 @@ export const useObjectNameSingularFromPlural = ({ }: { objectNamePlural: string; }) => { - const isWorkspaceSchemaCreated = useRecoilValue( - isWorkspaceSchemaCreatedState, - ); + const onboardingStatus = useOnboardingStatus(); const mockObjectMetadataItems = getObjectMetadataItemsMock(); let objectMetadataItem = useRecoilValue( @@ -22,7 +21,7 @@ export const useObjectNameSingularFromPlural = ({ }), ); - if (!isWorkspaceSchemaCreated) { + if (onboardingStatus !== OnboardingStatus.Completed) { objectMetadataItem = mockObjectMetadataItems.find( (objectMetadataItem) => diff --git a/packages/twenty-front/src/modules/object-record/record-index/hooks/useLoadRecordIndexTable.ts b/packages/twenty-front/src/modules/object-record/record-index/hooks/useLoadRecordIndexTable.ts index cbbe331295e..d40d607e3bb 100644 --- a/packages/twenty-front/src/modules/object-record/record-index/hooks/useLoadRecordIndexTable.ts +++ b/packages/twenty-front/src/modules/object-record/record-index/hooks/useLoadRecordIndexTable.ts @@ -1,6 +1,7 @@ import { useRecoilValue, useSetRecoilState } from 'recoil'; -import { currentWorkspaceState } from '@/auth/states/currentWorkspaceState'; +import { useOnboardingStatus } from '@/auth/hooks/useOnboardingStatus'; +import { OnboardingStatus } from '@/auth/utils/getOnboardingStatus'; import { useObjectMetadataItem } from '@/object-metadata/hooks/useObjectMetadataItem'; import { turnSortsIntoOrderBy } from '@/object-record/object-sort-dropdown/utils/turnSortsIntoOrderBy'; import { turnObjectDropdownFilterIntoQueryFilter } from '@/object-record/record-filter/utils/turnObjectDropdownFilterIntoQueryFilter'; @@ -13,7 +14,8 @@ import { useFindManyRecords } from '../../hooks/useFindManyRecords'; export const useLoadRecordIndexTable = (objectNameSingular: string) => { const { setRecordTableData, setIsRecordTableInitialLoading } = useRecordTable(); - const currentWorkspace = useRecoilValue(currentWorkspaceState); + + const onboardingStatus = useOnboardingStatus(); const { objectMetadataItem } = useObjectMetadataItem({ objectNameSingular, @@ -51,7 +53,10 @@ export const useLoadRecordIndexTable = (objectNameSingular: string) => { }); return { - records: currentWorkspace ? records : signInBackgroundMockCompanies, + records: + onboardingStatus === OnboardingStatus.Completed + ? records + : signInBackgroundMockCompanies, loading, fetchMoreRecords, queryStateIdentifier, diff --git a/packages/twenty-front/src/modules/object-record/record-table/record-table-cell/states/isCreateModeScopedState.ts b/packages/twenty-front/src/modules/object-record/record-table/record-table-cell/states/isCreateModeScopedState.ts deleted file mode 100644 index 688d22ccfbe..00000000000 --- a/packages/twenty-front/src/modules/object-record/record-table/record-table-cell/states/isCreateModeScopedState.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { atomFamily } from 'recoil'; - -export const isCreateModeScopedState = atomFamily({ - key: 'isCreateModeScopedState', - default: false, -}); diff --git a/packages/twenty-front/src/modules/sign-in-background-mock/components/SignInBackgroundMockContainerEffect.tsx b/packages/twenty-front/src/modules/sign-in-background-mock/components/SignInBackgroundMockContainerEffect.tsx index 8f851546cbf..2d9c93baa99 100644 --- a/packages/twenty-front/src/modules/sign-in-background-mock/components/SignInBackgroundMockContainerEffect.tsx +++ b/packages/twenty-front/src/modules/sign-in-background-mock/components/SignInBackgroundMockContainerEffect.tsx @@ -28,7 +28,6 @@ export const SignInBackgroundMockContainerEffect = ({ const { setAvailableTableColumns, setOnEntityCountChange, - setRecordTableData, setTableColumns, resetTableRowSelection, } = useRecordTable({ @@ -77,7 +76,6 @@ export const SignInBackgroundMockContainerEffect = ({ setAvailableFieldDefinitions, objectMetadataItem, setAvailableTableColumns, - setRecordTableData, setTableColumns, ]); diff --git a/packages/twenty-front/src/modules/users/components/UserProvider.tsx b/packages/twenty-front/src/modules/users/components/UserProvider.tsx index c24e27b082c..7bb02561eb5 100644 --- a/packages/twenty-front/src/modules/users/components/UserProvider.tsx +++ b/packages/twenty-front/src/modules/users/components/UserProvider.tsx @@ -5,7 +5,6 @@ import { useSetRecoilState } from 'recoil'; import { currentUserState } from '@/auth/states/currentUserState'; import { currentWorkspaceMemberState } from '@/auth/states/currentWorkspaceMemberState'; import { currentWorkspaceState } from '@/auth/states/currentWorkspaceState'; -import { isWorkspaceSchemaCreatedState } from '@/auth/states/isWorkspaceSchemaCreated'; import { GET_CURRENT_USER } from '@/users/graphql/queries/getCurrentUser'; import { ColorScheme } from '@/workspace-member/types/WorkspaceMember'; @@ -14,9 +13,7 @@ export const UserProvider = ({ children }: React.PropsWithChildren) => { const setCurrentUser = useSetRecoilState(currentUserState); const setCurrentWorkspace = useSetRecoilState(currentWorkspaceState); - const setIsWorkspaceSchemaCreated = useSetRecoilState( - isWorkspaceSchemaCreatedState, - ); + const setCurrentWorkspaceMember = useSetRecoilState( currentWorkspaceMemberState, ); @@ -37,7 +34,6 @@ export const UserProvider = ({ children }: React.PropsWithChildren) => { ...workspaceMember, colorScheme: (workspaceMember.colorScheme as ColorScheme) ?? 'Light', }); - setIsWorkspaceSchemaCreated(true); } }, [ setCurrentUser, @@ -45,7 +41,6 @@ export const UserProvider = ({ children }: React.PropsWithChildren) => { queryLoading, setCurrentWorkspace, setCurrentWorkspaceMember, - setIsWorkspaceSchemaCreated, queryData?.currentUser, ]); diff --git a/packages/twenty-server/src/database/typeorm/core/migrations/1706613419989-addDefaultAvatarUrlToUser.ts b/packages/twenty-server/src/database/typeorm/core/migrations/1706613419989-addDefaultAvatarUrlToUser.ts index 6846716377d..c1fcaeff69e 100644 --- a/packages/twenty-server/src/database/typeorm/core/migrations/1706613419989-addDefaultAvatarUrlToUser.ts +++ b/packages/twenty-server/src/database/typeorm/core/migrations/1706613419989-addDefaultAvatarUrlToUser.ts @@ -1,14 +1,19 @@ -import { MigrationInterface, QueryRunner } from "typeorm"; +import { MigrationInterface, QueryRunner } from 'typeorm'; -export class AddDefaultAvatarUrlToUser1706613419989 implements MigrationInterface { - name = 'AddDefaultAvatarUrlToUser1706613419989' +export class AddDefaultAvatarUrlToUser1706613419989 + implements MigrationInterface +{ + name = 'AddDefaultAvatarUrlToUser1706613419989'; - public async up(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "core"."user" ADD "defaultAvatarUrl" character varying`); - } - - public async down(queryRunner: QueryRunner): Promise { - await queryRunner.query(`ALTER TABLE "core"."user" DROP COLUMN "defaultAvatarUrl"`); - } + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query( + `ALTER TABLE "core"."user" ADD "defaultAvatarUrl" character varying`, + ); + } + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query( + `ALTER TABLE "core"."user" DROP COLUMN "defaultAvatarUrl"`, + ); + } }