import { useMutation, useQueryClient } from "@tanstack/react-query"; import { pauseConversation } from "./conversation-mutation-utils"; export const usePauseConversation = () => { const queryClient = useQueryClient(); return useMutation({ mutationFn: (variables: { conversationId: string }) => pauseConversation(variables.conversationId), onMutate: async () => { await queryClient.cancelQueries({ queryKey: ["user", "conversations"] }); const previousConversations = queryClient.getQueryData([ "user", "conversations", ]); return { previousConversations }; }, onError: (_, __, context) => { if (context?.previousConversations) { queryClient.setQueryData( ["user", "conversations"], context.previousConversations, ); } }, onSettled: (_, __, variables) => { // Invalidate the specific conversation query to trigger automatic refetch queryClient.invalidateQueries({ queryKey: ["user", "conversation", variables.conversationId], }); // Also invalidate the conversations list for consistency queryClient.invalidateQueries({ queryKey: ["user", "conversations"] }); // Invalidate V1 batch get queries queryClient.invalidateQueries({ queryKey: ["v1-batch-get-app-conversations"], }); }, }); };