OpenHands / frontend /src /hooks /mutation /use-delete-conversation.ts
Backup-bdg's picture
Upload 565 files
b59aa07 verified
raw
history blame
1.21 kB
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"] });
},
});
};