Spaces:
Build error
Build error
| 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"] }); | |
| }, | |
| }); | |
| }; | |