Aggregate queries and field metadata deletion (#9660)
This commit is contained in:
@ -1,13 +1,15 @@
|
||||
import { useMutation } from '@apollo/client';
|
||||
import { useApolloClient, useMutation } from '@apollo/client';
|
||||
|
||||
import {
|
||||
DeleteOneFieldMetadataItemMutation,
|
||||
DeleteOneFieldMetadataItemMutationVariables,
|
||||
} from '~/generated-metadata/graphql';
|
||||
|
||||
import { DELETE_ONE_FIELD_METADATA_ITEM } from '../graphql/mutations';
|
||||
|
||||
import { useRefreshObjectMetadataItems } from '@/object-metadata/hooks/useRefreshObjectMetadataItem';
|
||||
import { recordIndexKanbanAggregateOperationState } from '@/object-record/record-index/states/recordIndexKanbanAggregateOperationState';
|
||||
import { AGGREGATE_OPERATIONS } from '@/object-record/record-table/constants/AggregateOperations';
|
||||
import { useRecoilState } from 'recoil';
|
||||
import { DELETE_ONE_FIELD_METADATA_ITEM } from '../graphql/mutations';
|
||||
import { useApolloMetadataClient } from './useApolloMetadataClient';
|
||||
|
||||
export const useDeleteOneFieldMetadataItem = () => {
|
||||
@ -23,6 +25,27 @@ export const useDeleteOneFieldMetadataItem = () => {
|
||||
const { refreshObjectMetadataItems } =
|
||||
useRefreshObjectMetadataItems('network-only');
|
||||
|
||||
const [
|
||||
recordIndexKanbanAggregateOperation,
|
||||
setRecordIndexKanbanAggregateOperation,
|
||||
] = useRecoilState(recordIndexKanbanAggregateOperationState);
|
||||
|
||||
const apolloClient = useApolloClient();
|
||||
|
||||
const resetRecordIndexKanbanAggregateOperation = async (
|
||||
idToDelete: DeleteOneFieldMetadataItemMutationVariables['idToDelete'],
|
||||
) => {
|
||||
if (recordIndexKanbanAggregateOperation?.fieldMetadataId === idToDelete) {
|
||||
setRecordIndexKanbanAggregateOperation({
|
||||
operation: AGGREGATE_OPERATIONS.count,
|
||||
fieldMetadataId: null,
|
||||
});
|
||||
}
|
||||
await apolloClient.refetchQueries({
|
||||
include: ['FindManyViews'],
|
||||
});
|
||||
};
|
||||
|
||||
const deleteOneFieldMetadataItem = async (
|
||||
idToDelete: DeleteOneFieldMetadataItemMutationVariables['idToDelete'],
|
||||
) => {
|
||||
@ -32,6 +55,8 @@ export const useDeleteOneFieldMetadataItem = () => {
|
||||
},
|
||||
});
|
||||
|
||||
await resetRecordIndexKanbanAggregateOperation(idToDelete);
|
||||
|
||||
await refreshObjectMetadataItems();
|
||||
|
||||
return result;
|
||||
|
||||
Reference in New Issue
Block a user