Refactor Views by cleaning the code, relying on apolloCache and improving performances (#4516)

* Wip refactoring view

* Post merge conflicts

* Fix review

* Add create view capability

* Fix create object missing view

* Fix tests
This commit is contained in:
Charles Bochet
2024-03-20 14:21:58 +01:00
committed by GitHub
parent 20e14cb455
commit cfb0cce9b8
392 changed files with 3474 additions and 4410 deletions

View File

@ -1,6 +1,9 @@
import { useEffect } from 'react';
import { useQuery } from '@apollo/client';
import { useRecoilValue } from 'recoil';
import { currentUserState } from '@/auth/states/currentUserState';
import { EMPTY_QUERY } from '@/object-metadata/hooks/useObjectMetadataItem';
import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSingular';
import { useGenerateFindManyRecordsForMultipleMetadataItemsQuery } from '@/object-record/hooks/useGenerateFindManyRecordsForMultipleMetadataItemsQuery';
import { MultiObjectRecordQueryResult } from '@/object-record/relation-picker/hooks/useMultiObjectRecordsQueryResultFormattedAsObjectRecordForSelectArray';
@ -9,6 +12,8 @@ import { PrefetchKey } from '@/prefetch/types/PrefetchKey';
import { isDefined } from '~/utils/isDefined';
export const PrefetchRunQueriesEffect = () => {
const currentUser = useRecoilValue(currentUserState);
const {
objectMetadataItem: objectMetadataItemView,
upsertRecordsInCache: upsertViewsInCache,
@ -27,16 +32,18 @@ export const PrefetchRunQueriesEffect = () => {
const prefetchFindManyQuery =
useGenerateFindManyRecordsForMultipleMetadataItemsQuery({
objectMetadataItems: [objectMetadataItemView, objectMetadataItemFavorite],
targetObjectMetadataItems: [
objectMetadataItemView,
objectMetadataItemFavorite,
],
depth: 2,
});
if (!isDefined(prefetchFindManyQuery)) {
throw new Error('Could not prefetch recrds');
}
const { data } = useQuery<MultiObjectRecordQueryResult>(
prefetchFindManyQuery,
prefetchFindManyQuery ?? EMPTY_QUERY,
{
skip: !currentUser,
},
);
useEffect(() => {