Fix tasks (#5199)
## 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:
@ -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(() => {
|
||||
|
||||
@ -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,
|
||||
};
|
||||
|
||||
@ -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,
|
||||
});
|
||||
|
||||
@ -16,7 +16,8 @@ export const usePrefetchedData = <T extends ObjectRecord>(
|
||||
|
||||
const { records } = useFindManyRecords<T>({
|
||||
skip: !isDataPrefetched,
|
||||
...prefetchQueryKey,
|
||||
objectNameSingular: prefetchQueryKey.objectNameSingular,
|
||||
recordGqlFields: prefetchQueryKey.fields,
|
||||
});
|
||||
|
||||
return {
|
||||
|
||||
@ -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,
|
||||
};
|
||||
@ -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,
|
||||
};
|
||||
@ -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: {},
|
||||
};
|
||||
@ -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,
|
||||
},
|
||||
};
|
||||
Reference in New Issue
Block a user