## Query depth deprecation

I'm deprecating depth parameter in our graphql query / cache tooling.
They were obsolete since we introduce the possibility to provide
RecordGqlFields

## Refactor combinedFindManyRecordHook

The hook can now take an array of operationSignatures

## Fix tasks issues

Fix optimistic rendering issue. Note that we still haven't handle
optimisticEffect on creation properly
This commit is contained in:
Charles Bochet
2024-04-29 23:33:23 +02:00
committed by GitHub
parent c946572fde
commit 6a14b1c6d6
187 changed files with 958 additions and 1482 deletions

View File

@ -3,8 +3,10 @@ import { useRecoilValue } from 'recoil';
import { currentUserState } from '@/auth/states/currentUserState';
import { Favorite } from '@/favorites/types/Favorite';
import { useFindManyRecordsForMultipleMetadataItems } from '@/object-record/multiple-objects/hooks/useFindManyRecordsForMultipleMetadataItems';
import { useCombinedFindManyRecords } from '@/object-record/multiple-objects/hooks/useCombinedFindManyRecords';
import { usePrefetchRunQuery } from '@/prefetch/hooks/internal/usePrefetchRunQuery';
import { FIND_ALL_FAVORITES_OPERATION_SIGNATURE } from '@/prefetch/query-keys/FindAllFavoritesOperationSignature';
import { FIND_ALL_VIEWS_OPERATION_SIGNATURE } from '@/prefetch/query-keys/FindAllViewsOperationSignature';
import { PrefetchKey } from '@/prefetch/types/PrefetchKey';
import { View } from '@/views/types/View';
import { isDefined } from '~/utils/isDefined';
@ -12,24 +14,22 @@ import { isDefined } from '~/utils/isDefined';
export const PrefetchRunQueriesEffect = () => {
const currentUser = useRecoilValue(currentUserState);
const {
objectMetadataItem: objectMetadataItemView,
upsertRecordsInCache: upsertViewsInCache,
} = usePrefetchRunQuery<View>({
prefetchKey: PrefetchKey.AllViews,
});
const { upsertRecordsInCache: upsertViewsInCache } =
usePrefetchRunQuery<View>({
prefetchKey: PrefetchKey.AllViews,
});
const {
objectMetadataItem: objectMetadataItemFavorite,
upsertRecordsInCache: upsertFavoritesInCache,
} = usePrefetchRunQuery<Favorite>({
prefetchKey: PrefetchKey.AllFavorites,
});
const { upsertRecordsInCache: upsertFavoritesInCache } =
usePrefetchRunQuery<Favorite>({
prefetchKey: PrefetchKey.AllFavorites,
});
const { result } = useFindManyRecordsForMultipleMetadataItems({
objectMetadataItems: [objectMetadataItemView, objectMetadataItemFavorite],
const { result } = useCombinedFindManyRecords({
operationSignatures: [
FIND_ALL_VIEWS_OPERATION_SIGNATURE,
FIND_ALL_FAVORITES_OPERATION_SIGNATURE,
],
skip: !currentUser,
depth: 1,
});
useEffect(() => {

View File

@ -1,9 +1,10 @@
import { QueryKey } from '@/object-record/query-keys/types/QueryKey';
import { ALL_FAVORITES_QUERY_KEY } from '@/prefetch/query-keys/AllFavoritesQueryKey';
import { ALL_VIEWS_QUERY_KEY } from '@/prefetch/query-keys/AllViewsQueryKey';
import { RecordGqlOperationSignature } from '@/object-record/graphql/types/RecordGqlOperationSignature';
import { FIND_ALL_FAVORITES_OPERATION_SIGNATURE } from '@/prefetch/query-keys/FindAllFavoritesOperationSignature';
import { FIND_ALL_VIEWS_OPERATION_SIGNATURE } from '@/prefetch/query-keys/FindAllViewsOperationSignature';
import { PrefetchKey } from '@/prefetch/types/PrefetchKey';
export const PREFETCH_CONFIG: Record<PrefetchKey, QueryKey> = {
ALL_VIEWS: ALL_VIEWS_QUERY_KEY,
ALL_FAVORITES: ALL_FAVORITES_QUERY_KEY,
};
export const PREFETCH_CONFIG: Record<PrefetchKey, RecordGqlOperationSignature> =
{
ALL_VIEWS: FIND_ALL_VIEWS_OPERATION_SIGNATURE,
ALL_FAVORITES: FIND_ALL_FAVORITES_OPERATION_SIGNATURE,
};

View File

@ -29,7 +29,7 @@ export const usePrefetchRunQuery = <T extends ObjectRecord>({
const upsertRecordsInCache = (records: T[]) => {
upsertFindManyRecordsQueryInCache({
queryVariables: PREFETCH_CONFIG[prefetchKey].variables,
depth: PREFETCH_CONFIG[prefetchKey].depth,
recordGqlFields: PREFETCH_CONFIG[prefetchKey].fields,
objectRecordsToOverwrite: records,
computeReferences: false,
});

View File

@ -16,7 +16,8 @@ export const usePrefetchedData = <T extends ObjectRecord>(
const { records } = useFindManyRecords<T>({
skip: !isDataPrefetched,
...prefetchQueryKey,
objectNameSingular: prefetchQueryKey.objectNameSingular,
recordGqlFields: prefetchQueryKey.fields,
});
return {

View File

@ -1,8 +0,0 @@
import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSingular';
import { QueryKey } from '@/object-record/query-keys/types/QueryKey';
export const ALL_FAVORITES_QUERY_KEY: QueryKey = {
objectNameSingular: CoreObjectNameSingular.Favorite,
variables: {},
depth: 1,
};

View File

@ -1,8 +0,0 @@
import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSingular';
import { QueryKey } from '@/object-record/query-keys/types/QueryKey';
export const ALL_VIEWS_QUERY_KEY: QueryKey = {
objectNameSingular: CoreObjectNameSingular.View,
variables: {},
depth: 1,
};

View File

@ -0,0 +1,8 @@
import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSingular';
import { RecordGqlOperationSignature } from '@/object-record/graphql/types/RecordGqlOperationSignature';
export const FIND_ALL_FAVORITES_OPERATION_SIGNATURE: RecordGqlOperationSignature =
{
objectNameSingular: CoreObjectNameSingular.Favorite,
variables: {},
};

View File

@ -0,0 +1,23 @@
import { CoreObjectNameSingular } from '@/object-metadata/types/CoreObjectNameSingular';
import { RecordGqlOperationSignature } from '@/object-record/graphql/types/RecordGqlOperationSignature';
export const FIND_ALL_VIEWS_OPERATION_SIGNATURE: RecordGqlOperationSignature = {
objectNameSingular: CoreObjectNameSingular.View,
variables: {},
fields: {
id: true,
createdAt: true,
updatedAt: true,
isCompact: true,
objectMetadataId: true,
position: true,
type: true,
kanbanFieldMetadataId: true,
name: true,
icon: true,
key: true,
viewFilters: true,
viewSorts: true,
viewFields: true,
},
};