Download src/hooks/mutation/use-pause-conversation.ts from SaylorTwift/openhands: direct link, hf CLI and curl.
- Browser
- Download file 1.38 kB
-
https://huggingface.co/SaylorTwift/openhands/resolve/main/src/hooks/mutation/use-pause-conversation.ts
- Command line
-
hf download hf://SaylorTwift/openhands/src/hooks/mutation/use-pause-conversation.ts
-
curl -L -o use-pause-conversation.ts https://huggingface.co/SaylorTwift/openhands/resolve/main/src/hooks/mutation/use-pause-conversation.ts
1.38 kB
| 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"], | |
| }); | |
| }, | |
| }); | |
| }; | |