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"] }); | |
}, | |
}); | |
}; | |