import { useMutation, useQueryClient } from "@tanstack/react-query"; import OpenHands from "#/api/open-hands"; export const useDeleteConversation = () => { const queryClient = useQueryClient(); return useMutation({ mutationFn: (variables: { conversationId: string }) => OpenHands.deleteUserConversation(variables.conversationId), onMutate: async (variables) => { await queryClient.cancelQueries({ queryKey: ["user", "conversations"] }); const previousConversations = queryClient.getQueryData([ "user", "conversations", ]); queryClient.setQueryData( ["user", "conversations"], (old: { conversation_id: string }[] | undefined) => old?.filter( (conv) => conv.conversation_id !== variables.conversationId, ), ); return { previousConversations }; }, onError: (err, variables, context) => { if (context?.previousConversations) { queryClient.setQueryData( ["user", "conversations"], context.previousConversations, ); } }, onSettled: () => { queryClient.invalidateQueries({ queryKey: ["user", "conversations"] }); }, }); };