Create a recoil value for is workspaceSchema created

This commit is contained in:
martmull
2024-02-06 10:00:55 +01:00
parent 700bbfe5b1
commit 77772c948e
7 changed files with 37 additions and 15 deletions
@@ -0,0 +1,6 @@
import { atom } from 'recoil';
export const isWorkspaceSchemaCreatedState = atom<boolean | null>({
key: 'isWorkspaceSchemaCreatedState',
default: null,
});
@@ -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 (
<>
<ObjectMetadataItemsLoadEffect />
{(!currentWorkspaceMember || !!objectMetadataItems.length) && (
{(!isWorkspaceSchemaCreated || !!objectMetadataItems.length) && (
<RelationPickerScope relationPickerScopeId="relation-picker">
{children}
</RelationPickerScope>
@@ -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) =>
@@ -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) =>
@@ -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) =>
@@ -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) =>
@@ -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,
]);