From fab385179ba53439395cbac4f9f6aecfac4e022b Mon Sep 17 00:00:00 2001 From: Charles Bochet Date: Tue, 30 Apr 2024 00:38:22 +0200 Subject: [PATCH] Fix Favorites issue --- .../useGenerateCombinedFindManyRecordsQuery.ts | 7 ++++++- .../prefetch/hooks/internal/usePrefetchRunQuery.ts | 5 ++++- .../src/modules/prefetch/hooks/usePrefetchedData.ts | 13 ++++++++++++- 3 files changed, 22 insertions(+), 3 deletions(-) diff --git a/packages/twenty-front/src/modules/object-record/multiple-objects/hooks/useGenerateCombinedFindManyRecordsQuery.ts b/packages/twenty-front/src/modules/object-record/multiple-objects/hooks/useGenerateCombinedFindManyRecordsQuery.ts index e721722a9..a60d7d5b6 100644 --- a/packages/twenty-front/src/modules/object-record/multiple-objects/hooks/useGenerateCombinedFindManyRecordsQuery.ts +++ b/packages/twenty-front/src/modules/object-record/multiple-objects/hooks/useGenerateCombinedFindManyRecordsQuery.ts @@ -5,6 +5,7 @@ import { useRecoilValue } from 'recoil'; import { objectMetadataItemsState } from '@/object-metadata/states/objectMetadataItemsState'; import { mapObjectMetadataToGraphQLQuery } from '@/object-metadata/utils/mapObjectMetadataToGraphQLQuery'; import { RecordGqlOperationSignature } from '@/object-record/graphql/types/RecordGqlOperationSignature'; +import { generateDepthOneRecordGqlFields } from '@/object-record/graphql/utils/generateDepthOneRecordGqlFields'; import { isNonEmptyArray } from '~/utils/isNonEmptyArray'; import { capitalize } from '~/utils/string/capitalize'; @@ -91,7 +92,11 @@ export const useGenerateCombinedFindManyRecordsQuery = ({ node ${mapObjectMetadataToGraphQLQuery({ objectMetadataItems: objectMetadataItems, objectMetadataItem, - recordGqlFields: fields, + recordGqlFields: + fields ?? + generateDepthOneRecordGqlFields({ + objectMetadataItem, + }), })} cursor } diff --git a/packages/twenty-front/src/modules/prefetch/hooks/internal/usePrefetchRunQuery.ts b/packages/twenty-front/src/modules/prefetch/hooks/internal/usePrefetchRunQuery.ts index 33ff7bc67..2faf5b35d 100644 --- a/packages/twenty-front/src/modules/prefetch/hooks/internal/usePrefetchRunQuery.ts +++ b/packages/twenty-front/src/modules/prefetch/hooks/internal/usePrefetchRunQuery.ts @@ -2,6 +2,7 @@ import { useSetRecoilState } from 'recoil'; import { useObjectMetadataItem } from '@/object-metadata/hooks/useObjectMetadataItem'; import { useUpsertFindManyRecordsQueryInCache } from '@/object-record/cache/hooks/useUpsertFindManyRecordsQueryInCache'; +import { generateDepthOneRecordGqlFields } from '@/object-record/graphql/utils/generateDepthOneRecordGqlFields'; import { ObjectRecord } from '@/object-record/types/ObjectRecord'; import { PREFETCH_CONFIG } from '@/prefetch/constants/PrefetchConfig'; import { prefetchIsLoadedFamilyState } from '@/prefetch/states/prefetchIsLoadedFamilyState'; @@ -29,7 +30,9 @@ export const usePrefetchRunQuery = ({ const upsertRecordsInCache = (records: T[]) => { upsertFindManyRecordsQueryInCache({ queryVariables: PREFETCH_CONFIG[prefetchKey].variables, - recordGqlFields: PREFETCH_CONFIG[prefetchKey].fields, + recordGqlFields: + PREFETCH_CONFIG[prefetchKey].fields ?? + generateDepthOneRecordGqlFields({ objectMetadataItem }), objectRecordsToOverwrite: records, computeReferences: false, }); diff --git a/packages/twenty-front/src/modules/prefetch/hooks/usePrefetchedData.ts b/packages/twenty-front/src/modules/prefetch/hooks/usePrefetchedData.ts index a82d02de7..eafac6366 100644 --- a/packages/twenty-front/src/modules/prefetch/hooks/usePrefetchedData.ts +++ b/packages/twenty-front/src/modules/prefetch/hooks/usePrefetchedData.ts @@ -1,5 +1,7 @@ import { useRecoilValue } from 'recoil'; +import { useObjectMetadataItem } from '@/object-metadata/hooks/useObjectMetadataItem'; +import { generateDepthOneRecordGqlFields } from '@/object-record/graphql/utils/generateDepthOneRecordGqlFields'; import { useFindManyRecords } from '@/object-record/hooks/useFindManyRecords'; import { ObjectRecord } from '@/object-record/types/ObjectRecord'; import { PREFETCH_CONFIG } from '@/prefetch/constants/PrefetchConfig'; @@ -12,12 +14,21 @@ export const usePrefetchedData = ( const isDataPrefetched = useRecoilValue( prefetchIsLoadedFamilyState(prefetchKey), ); + const prefetchQueryKey = PREFETCH_CONFIG[prefetchKey]; + const { objectMetadataItem } = useObjectMetadataItem({ + objectNameSingular: prefetchQueryKey.objectNameSingular, + }); + const { records } = useFindManyRecords({ skip: !isDataPrefetched, objectNameSingular: prefetchQueryKey.objectNameSingular, - recordGqlFields: prefetchQueryKey.fields, + recordGqlFields: + prefetchQueryKey.fields ?? + generateDepthOneRecordGqlFields({ + objectMetadataItem, + }), }); return {