import { ApolloCache, DefaultContext, DocumentNode, FetchResult, MaybeMasked, MutationFunctionOptions, OperationVariables, useMutation } from '@apollo/client'; import { toaster } from '../components/ui/toaster'; interface UseToastMutationProps { mutation: DocumentNode; successMsg?: string; } interface UseToastMutationReturn { update: ( options?: | MutationFunctionOptions> | undefined ) => Promise>>; } export function useToastMutation(props: UseToastMutationProps): UseToastMutationReturn { const [update] = useMutation(props.mutation, { onCompleted: () => toaster.create({ description: props.successMsg, type: 'success' }), onError: error => { toaster.create({ description: `${error.message}`, type: 'error' }); console.error(error); } }); return { update }; }