From 77772c948e6976329a9b92d76b2ceec6a44df4da Mon Sep 17 00:00:00 2001 From: martmull Date: Tue, 6 Feb 2024 10:00:55 +0100 Subject: [PATCH] Create a recoil value for is workspaceSchema created --- .../src/modules/auth/states/isWorkspaceSchemaCreated.ts | 6 ++++++ .../components/ObjectMetadataItemsProvider.tsx | 8 +++++--- .../object-metadata/hooks/useObjectMetadataItem.ts | 8 +++++--- .../object-metadata/hooks/useObjectMetadataItemOnly.ts | 8 +++++--- .../hooks/useObjectNamePluralFromSingular.ts | 8 +++++--- .../hooks/useObjectNameSingularFromPlural.ts | 8 +++++--- .../src/modules/users/components/UserProvider.tsx | 6 ++++++ 7 files changed, 37 insertions(+), 15 deletions(-) create mode 100644 packages/twenty-front/src/modules/auth/states/isWorkspaceSchemaCreated.ts diff --git a/packages/twenty-front/src/modules/auth/states/isWorkspaceSchemaCreated.ts b/packages/twenty-front/src/modules/auth/states/isWorkspaceSchemaCreated.ts new file mode 100644 index 00000000000..57b436a21df --- /dev/null +++ b/packages/twenty-front/src/modules/auth/states/isWorkspaceSchemaCreated.ts @@ -0,0 +1,6 @@ +import { atom } from 'recoil'; + +export const isWorkspaceSchemaCreatedState = atom({ + key: 'isWorkspaceSchemaCreatedState', + default: null, +}); 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 672eae3b3ad..0d65a2355bd 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,6 @@ import { useRecoilValue } from 'recoil'; -import { currentWorkspaceMemberState } from '@/auth/states/currentWorkspaceMemberState'; +import { isWorkspaceSchemaCreatedState } from '@/auth/states/isWorkspaceSchemaCreated'; import { ObjectMetadataItemsLoadEffect } from '@/object-metadata/components/ObjectMetadataItemsLoadEffect'; import { objectMetadataItemsState } from '@/object-metadata/states/objectMetadataItemsState'; import { RelationPickerScope } from '@/object-record/relation-picker/scopes/RelationPickerScope'; @@ -9,12 +9,14 @@ export const ObjectMetadataItemsProvider = ({ children, }: React.PropsWithChildren) => { const objectMetadataItems = useRecoilValue(objectMetadataItemsState); - const currentWorkspaceMember = useRecoilValue(currentWorkspaceMemberState); + const isWorkspaceSchemaCreated = useRecoilValue( + isWorkspaceSchemaCreatedState, + ); return ( <> - {(!currentWorkspaceMember || !!objectMetadataItems.length) && ( + {(!isWorkspaceSchemaCreated || !!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 326e9d16ca6..e83b43aa501 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,7 @@ import { gql } from '@apollo/client'; import { useRecoilValue } from 'recoil'; -import { currentWorkspaceMemberState } from '@/auth/states/currentWorkspaceMemberState'; +import { isWorkspaceSchemaCreatedState } from '@/auth/states/isWorkspaceSchemaCreated'; import { ObjectMetadataItemNotFoundError } from '@/object-metadata/errors/ObjectMetadataNotFoundError'; import { useGetObjectOrderByField } from '@/object-metadata/hooks/useGetObjectOrderByField'; import { useMapToObjectRecordIdentifier } from '@/object-metadata/hooks/useMapToObjectRecordIdentifier'; @@ -40,7 +40,9 @@ export const useObjectMetadataItem = ( { objectNameSingular }: ObjectMetadataItemIdentifier, depth?: number, ) => { - const currentWorkspaceMember = useRecoilValue(currentWorkspaceMemberState); + const isWorkspaceSchemaCreated = useRecoilValue( + isWorkspaceSchemaCreatedState, + ); const mockObjectMetadataItems = getObjectMetadataItemsMock(); let objectMetadataItem = useRecoilValue( @@ -52,7 +54,7 @@ export const useObjectMetadataItem = ( let objectMetadataItems = useRecoilValue(objectMetadataItemsState); - if (!currentWorkspaceMember) { + if (!isWorkspaceSchemaCreated) { 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 5a0bc6a2b6f..ae132c16ba6 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,6 @@ import { useRecoilValue } from 'recoil'; -import { currentWorkspaceMemberState } from '@/auth/states/currentWorkspaceMemberState'; +import { isWorkspaceSchemaCreatedState } from '@/auth/states/isWorkspaceSchemaCreated'; import { ObjectMetadataItemNotFoundError } from '@/object-metadata/errors/ObjectMetadataNotFoundError'; import { objectMetadataItemFamilySelector } from '@/object-metadata/states/objectMetadataItemFamilySelector'; import { objectMetadataItemsState } from '@/object-metadata/states/objectMetadataItemsState'; @@ -12,7 +12,9 @@ import { ObjectMetadataItemIdentifier } from '../types/ObjectMetadataItemIdentif export const useObjectMetadataItemOnly = ({ objectNameSingular, }: ObjectMetadataItemIdentifier) => { - const currentWorkspaceMember = useRecoilValue(currentWorkspaceMemberState); + const isWorkspaceSchemaCreated = useRecoilValue( + isWorkspaceSchemaCreatedState, + ); const mockObjectMetadataItems = getObjectMetadataItemsMock(); let objectMetadataItem = useRecoilValue( @@ -24,7 +26,7 @@ export const useObjectMetadataItemOnly = ({ let objectMetadataItems = useRecoilValue(objectMetadataItemsState); - if (!currentWorkspaceMember) { + if (!isWorkspaceSchemaCreated) { 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 2a99d5ca22a..a3df0544e18 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,6 @@ import { useRecoilValue } from 'recoil'; -import { currentWorkspaceMemberState } from '@/auth/states/currentWorkspaceMemberState'; +import { isWorkspaceSchemaCreatedState } from '@/auth/states/isWorkspaceSchemaCreated'; import { objectMetadataItemFamilySelector } from '@/object-metadata/states/objectMetadataItemFamilySelector'; import { getObjectMetadataItemsMock } from '@/object-metadata/utils/getObjectMetadataItemsMock'; import { isDefined } from '~/utils/isDefined'; @@ -10,7 +10,9 @@ export const useObjectNamePluralFromSingular = ({ }: { objectNameSingular: string; }) => { - const currentWorkspaceMember = useRecoilValue(currentWorkspaceMemberState); + const isWorkspaceSchemaCreated = useRecoilValue( + isWorkspaceSchemaCreatedState, + ); const mockObjectMetadataItems = getObjectMetadataItemsMock(); let objectMetadataItem = useRecoilValue( @@ -20,7 +22,7 @@ export const useObjectNamePluralFromSingular = ({ }), ); - if (!currentWorkspaceMember) { + if (!isWorkspaceSchemaCreated) { 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 8bcb58b7408..fd7f3253a0d 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,6 @@ import { useRecoilValue } from 'recoil'; -import { currentWorkspaceMemberState } from '@/auth/states/currentWorkspaceMemberState'; +import { isWorkspaceSchemaCreatedState } from '@/auth/states/isWorkspaceSchemaCreated'; import { objectMetadataItemFamilySelector } from '@/object-metadata/states/objectMetadataItemFamilySelector'; import { getObjectMetadataItemsMock } from '@/object-metadata/utils/getObjectMetadataItemsMock'; import { isDefined } from '~/utils/isDefined'; @@ -10,7 +10,9 @@ export const useObjectNameSingularFromPlural = ({ }: { objectNamePlural: string; }) => { - const currentWorkspaceMember = useRecoilValue(currentWorkspaceMemberState); + const isWorkspaceSchemaCreated = useRecoilValue( + isWorkspaceSchemaCreatedState, + ); const mockObjectMetadataItems = getObjectMetadataItemsMock(); let objectMetadataItem = useRecoilValue( @@ -20,7 +22,7 @@ export const useObjectNameSingularFromPlural = ({ }), ); - if (!currentWorkspaceMember) { + if (!isWorkspaceSchemaCreated) { objectMetadataItem = mockObjectMetadataItems.find( (objectMetadataItem) => diff --git a/packages/twenty-front/src/modules/users/components/UserProvider.tsx b/packages/twenty-front/src/modules/users/components/UserProvider.tsx index 583bda8a81f..c24e27b082c 100644 --- a/packages/twenty-front/src/modules/users/components/UserProvider.tsx +++ b/packages/twenty-front/src/modules/users/components/UserProvider.tsx @@ -5,6 +5,7 @@ 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'; @@ -13,6 +14,9 @@ export const UserProvider = ({ children }: React.PropsWithChildren) => { const setCurrentUser = useSetRecoilState(currentUserState); const setCurrentWorkspace = useSetRecoilState(currentWorkspaceState); + const setIsWorkspaceSchemaCreated = useSetRecoilState( + isWorkspaceSchemaCreatedState, + ); const setCurrentWorkspaceMember = useSetRecoilState( currentWorkspaceMemberState, ); @@ -33,6 +37,7 @@ export const UserProvider = ({ children }: React.PropsWithChildren) => { ...workspaceMember, colorScheme: (workspaceMember.colorScheme as ColorScheme) ?? 'Light', }); + setIsWorkspaceSchemaCreated(true); } }, [ setCurrentUser, @@ -40,6 +45,7 @@ export const UserProvider = ({ children }: React.PropsWithChildren) => { queryLoading, setCurrentWorkspace, setCurrentWorkspaceMember, + setIsWorkspaceSchemaCreated, queryData?.currentUser, ]);