// Copyright: © 2026 TWWIM UG. All rights reserved. (www.twwim.com) /** * Operator clicks "Request contact" → POST /conversations/:id/request-contact. * The server appends a SYSTEM bubble to the transcript and arms a pending-form * flag picked up by the next /plugin/flow response. After the visitor submits, * useCapturedContact's 5 s poll will pick up the data — so on success we just * invalidate the detail + captured-contact queries. */ import { useMutation, useQueryClient } from '@tanstack/react-query'; import { conversationsApi } from '@/infrastructure/http/api/conversations/api'; export function useRequestContactMutation() { const queryClient = useQueryClient(); return useMutation({ mutationFn: (conversationId: string) => conversationsApi.requestContact(conversationId), onSuccess: (detail, conversationId) => { queryClient.setQueryData(['conversations', 'detail', detail.id], detail); queryClient.invalidateQueries({ queryKey: ['conversations', conversationId, 'captured-contact'] }); queryClient.invalidateQueries({ queryKey: ['conversations', 'list'] }); }, }); }