import { ApolloClient, useMutation } from '@apollo/client'; import { getOperationName } from '@apollo/client/utilities'; import { DeleteOneFieldMetadataItemMutation, DeleteOneFieldMetadataItemMutationVariables, } from '~/generated-metadata/graphql'; import { DELETE_ONE_METADATA_FIELD } from '../graphql/mutations'; import { FIND_MANY_METADATA_OBJECTS } from '../graphql/queries'; import { useApolloMetadataClient } from './useApolloMetadataClient'; export const useDeleteOneFieldMetadataItem = () => { const apolloMetadataClient = useApolloMetadataClient(); const [mutate] = useMutation< DeleteOneFieldMetadataItemMutation, DeleteOneFieldMetadataItemMutationVariables >(DELETE_ONE_METADATA_FIELD, { client: apolloMetadataClient ?? ({} as ApolloClient), }); const deleteOneFieldMetadataItem = async ( idToDelete: DeleteOneFieldMetadataItemMutationVariables['idToDelete'], ) => { return await mutate({ variables: { idToDelete, }, awaitRefetchQueries: true, refetchQueries: [getOperationName(FIND_MANY_METADATA_OBJECTS) ?? ''], }); }; return { deleteOneFieldMetadataItem, }; };