From f49ddec2f6131b0b4fbf6fa7043dbff9b02f8312 Mon Sep 17 00:00:00 2001 From: Charles Bochet Date: Wed, 15 Nov 2023 15:57:43 +0100 Subject: [PATCH] Fix optimistic effect breaking build --- .../hooks/useOptimisticEffect.ts | 15 +++++++-------- .../hooks/useCreateOneObjectRecord.ts | 2 +- .../object-record/hooks/useObjectRecordTable.ts | 2 +- .../record-table/components/RecordTableEffect.tsx | 2 +- front/src/pages/companies/Companies.tsx | 2 +- front/src/pages/people/People.tsx | 2 +- .../api-keys/SettingsDevelopersApiKeyDetail.tsx | 2 +- .../api-keys/SettingsDevelopersApiKeys.tsx | 2 +- .../api-keys/SettingsDevelopersApiKeysNew.tsx | 2 +- 9 files changed, 15 insertions(+), 16 deletions(-) diff --git a/front/src/modules/apollo/optimistic-effect/hooks/useOptimisticEffect.ts b/front/src/modules/apollo/optimistic-effect/hooks/useOptimisticEffect.ts index 1f95e6dbd..19aff8cc5 100644 --- a/front/src/modules/apollo/optimistic-effect/hooks/useOptimisticEffect.ts +++ b/front/src/modules/apollo/optimistic-effect/hooks/useOptimisticEffect.ts @@ -8,8 +8,8 @@ import { isNonEmptyArray } from '@sniptt/guards'; import { useRecoilCallback } from 'recoil'; import { GET_COMPANIES } from '@/companies/graphql/queries/getCompanies'; +import { useFindOneObjectMetadataItem } from '@/object-metadata/hooks/useFindOneObjectMetadataItem'; import { ObjectMetadataItem } from '@/object-metadata/types/ObjectMetadataItem'; -import { useGenerateFindManyCustomObjectsQuery } from '@/object-record/utils/useGenerateFindManyCustomObjectsQuery'; import { GET_PEOPLE } from '@/people/graphql/queries/getPeople'; import { GET_API_KEYS } from '@/settings/developers/graphql/queries/getApiKeys'; import { @@ -22,8 +22,11 @@ import { optimisticEffectState } from '../states/optimisticEffectState'; import { OptimisticEffect } from '../types/internal/OptimisticEffect'; import { OptimisticEffectDefinition } from '../types/OptimisticEffectDefinition'; -export const useOptimisticEffect = () => { +export const useOptimisticEffect = (objectNameSingular: string) => { const apolloClient = useApolloClient(); + const { findManyQuery } = useFindOneObjectMetadataItem({ + objectNameSingular, + }); const registerOptimisticEffect = useRecoilCallback( ({ snapshot, set }) => @@ -54,12 +57,8 @@ export const useOptimisticEffect = () => { objectMetadataItem?: ObjectMetadataItem; }) => { if (isUsingFlexibleBackend && objectMetadataItem) { - const generatedQuery = useGenerateFindManyCustomObjectsQuery({ - objectMetadataItem, - }); - const existingData = cache.readQuery({ - query: generatedQuery, + query: findManyQuery, variables, }); @@ -68,7 +67,7 @@ export const useOptimisticEffect = () => { } cache.writeQuery({ - query: generatedQuery, + query: findManyQuery, variables, data: { [objectMetadataItem.namePlural]: definition.resolver({ diff --git a/front/src/modules/object-record/hooks/useCreateOneObjectRecord.ts b/front/src/modules/object-record/hooks/useCreateOneObjectRecord.ts index 493238d12..4010a1ffc 100644 --- a/front/src/modules/object-record/hooks/useCreateOneObjectRecord.ts +++ b/front/src/modules/object-record/hooks/useCreateOneObjectRecord.ts @@ -24,7 +24,7 @@ const defaultFieldValues: Record = { export const useCreateOneObjectRecord = ({ objectNamePlural, }: Pick) => { - const { triggerOptimisticEffects } = useOptimisticEffect(); + const { triggerOptimisticEffects } = useOptimisticEffect('CompanyV2'); const { foundObjectMetadataItem, diff --git a/front/src/modules/object-record/hooks/useObjectRecordTable.ts b/front/src/modules/object-record/hooks/useObjectRecordTable.ts index 5d9b74599..c7d0dc211 100644 --- a/front/src/modules/object-record/hooks/useObjectRecordTable.ts +++ b/front/src/modules/object-record/hooks/useObjectRecordTable.ts @@ -14,7 +14,7 @@ import { useFindManyObjectRecords } from './useFindManyObjectRecords'; export const useObjectRecordTable = () => { const { scopeId: objectNamePlural } = useRecordTable(); - const { registerOptimisticEffect } = useOptimisticEffect(); + const { registerOptimisticEffect } = useOptimisticEffect('CompanyV2'); const { foundObjectMetadataItem } = useFindOneObjectMetadataItem({ objectNamePlural, diff --git a/front/src/modules/ui/object/record-table/components/RecordTableEffect.tsx b/front/src/modules/ui/object/record-table/components/RecordTableEffect.tsx index a0f2710fd..69633313c 100644 --- a/front/src/modules/ui/object/record-table/components/RecordTableEffect.tsx +++ b/front/src/modules/ui/object/record-table/components/RecordTableEffect.tsx @@ -35,7 +35,7 @@ export const RecordTableEffect = ({ const { setRecordTableData } = useRecordTable(); const { tableSortsOrderBySelector, tableFiltersWhereSelector } = useRecordTableScopedStates(); - const { registerOptimisticEffect } = useOptimisticEffect(); + const { registerOptimisticEffect } = useOptimisticEffect('CompanyV2'); const tableSortsOrderBy = useRecoilValue(tableSortsOrderBySelector); const sortsOrderBy = defaults(tableSortsOrderBy, [ diff --git a/front/src/pages/companies/Companies.tsx b/front/src/pages/companies/Companies.tsx index 1828dbe71..d785b8ef8 100644 --- a/front/src/pages/companies/Companies.tsx +++ b/front/src/pages/companies/Companies.tsx @@ -29,7 +29,7 @@ export const Companies = () => { recordTableScopeId: 'companies', }); const upsertTableRowIds = useUpsertTableRowId(); - const { triggerOptimisticEffects } = useOptimisticEffect(); + const { triggerOptimisticEffects } = useOptimisticEffect('Company'); const handleAddButtonClick = async () => { const newCompanyId: string = v4(); diff --git a/front/src/pages/people/People.tsx b/front/src/pages/people/People.tsx index 56ba58336..f7d511938 100644 --- a/front/src/pages/people/People.tsx +++ b/front/src/pages/people/People.tsx @@ -27,7 +27,7 @@ export const People = () => { recordTableScopeId: 'people', }); const upsertTableRowIds = useUpsertTableRowId(); - const { triggerOptimisticEffects } = useOptimisticEffect(); + const { triggerOptimisticEffects } = useOptimisticEffect('Person'); const handleAddButtonClick = async () => { const newPersonId: string = v4(); diff --git a/front/src/pages/settings/developers/api-keys/SettingsDevelopersApiKeyDetail.tsx b/front/src/pages/settings/developers/api-keys/SettingsDevelopersApiKeyDetail.tsx index f59709b73..9dd5c5be8 100644 --- a/front/src/pages/settings/developers/api-keys/SettingsDevelopersApiKeyDetail.tsx +++ b/front/src/pages/settings/developers/api-keys/SettingsDevelopersApiKeyDetail.tsx @@ -41,7 +41,7 @@ const StyledInputContainer = styled.div` export const SettingsDevelopersApiKeyDetail = () => { const navigate = useNavigate(); const { apiKeyId = '' } = useParams(); - const { triggerOptimisticEffects } = useOptimisticEffect(); + const { triggerOptimisticEffects } = useOptimisticEffect('ApiKeyV2'); const setGeneratedApi = useGeneratedApiKeys(); const [generatedApiKey] = useRecoilState( diff --git a/front/src/pages/settings/developers/api-keys/SettingsDevelopersApiKeys.tsx b/front/src/pages/settings/developers/api-keys/SettingsDevelopersApiKeys.tsx index b09b5d215..ef3598def 100644 --- a/front/src/pages/settings/developers/api-keys/SettingsDevelopersApiKeys.tsx +++ b/front/src/pages/settings/developers/api-keys/SettingsDevelopersApiKeys.tsx @@ -39,7 +39,7 @@ const StyledH1Title = styled(H1Title)` export const SettingsDevelopersApiKeys = () => { const navigate = useNavigate(); - const { registerOptimisticEffect } = useOptimisticEffect(); + const { registerOptimisticEffect } = useOptimisticEffect('ApiKeyV2'); const apiKeysQuery = useGetApiKeysQuery({ onCompleted: () => { registerOptimisticEffect({ diff --git a/front/src/pages/settings/developers/api-keys/SettingsDevelopersApiKeysNew.tsx b/front/src/pages/settings/developers/api-keys/SettingsDevelopersApiKeysNew.tsx index 44fb5713c..6b4c5a73d 100644 --- a/front/src/pages/settings/developers/api-keys/SettingsDevelopersApiKeysNew.tsx +++ b/front/src/pages/settings/developers/api-keys/SettingsDevelopersApiKeysNew.tsx @@ -19,7 +19,7 @@ import { useInsertOneApiKeyMutation } from '~/generated/graphql'; export const SettingsDevelopersApiKeysNew = () => { const [insertOneApiKey] = useInsertOneApiKeyMutation(); - const { triggerOptimisticEffects } = useOptimisticEffect(); + const { triggerOptimisticEffects } = useOptimisticEffect('ApiKeyV2'); const navigate = useNavigate(); const setGeneratedApi = useGeneratedApiKeys(); const [formValues, setFormValues] = useState<{