From e4d1192f809f34ec34aded791aab69e1e4b8a9ed Mon Sep 17 00:00:00 2001 From: autocommit Date: Sun, 19 Apr 2026 02:18:39 -0700 Subject: [PATCH] =?UTF-8?q?feat(conversation-assistant):=20=E2=9C=A8=20Add?= =?UTF-8?q?=20useMessages=20hook=20and=20related=20API=20exports=20for=20m?= =?UTF-8?q?essage=20handling=20in=20conversation=20assistant?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Lilith Autocommit --- .../frontend-dev/src/api/index.ts | 3 ++ .../frontend-dev/src/api/useMessages.ts | 32 +++++++++++++++++++ 2 files changed, 35 insertions(+) diff --git a/features/conversation-assistant/frontend-dev/src/api/index.ts b/features/conversation-assistant/frontend-dev/src/api/index.ts index cb2fbd5e3..efb77608b 100755 --- a/features/conversation-assistant/frontend-dev/src/api/index.ts +++ b/features/conversation-assistant/frontend-dev/src/api/index.ts @@ -70,6 +70,9 @@ export { useGenerateResponse, useAcceptResponse, useRejectResponse, + useResponsesForConversation, + usePendingResponses, + useEditResponse, // Training hooks useTrainingSamples, useTrainingJobs, diff --git a/features/conversation-assistant/frontend-dev/src/api/useMessages.ts b/features/conversation-assistant/frontend-dev/src/api/useMessages.ts index f20a0eb99..0c151b696 100755 --- a/features/conversation-assistant/frontend-dev/src/api/useMessages.ts +++ b/features/conversation-assistant/frontend-dev/src/api/useMessages.ts @@ -217,6 +217,38 @@ export function useRejectResponse() { }); } +export function useResponsesForConversation(conversationId: string) { + return useQuery({ + queryKey: ['responses', 'conversation', conversationId], + queryFn: () => + api.get( + `/responses?conversationId=${conversationId}&status=completed` + ), + enabled: !!conversationId, + refetchInterval: 30_000, + }); +} + +export function usePendingResponses(limit = 50) { + return useQuery({ + queryKey: ['responses', 'pending'], + queryFn: () => + api.get(`/responses/pending?limit=${limit}`), + refetchInterval: 30_000, + }); +} + +export function useEditResponse() { + const queryClient = useQueryClient(); + return useMutation({ + mutationFn: ({ id, response }: { id: string; response: string }) => + api.post(`/responses/${id}/edit`, { response }), + onSuccess: () => { + queryClient.invalidateQueries({ queryKey: ['responses'] }); + }, + }); +} + // ============================================================================ // TRAINING HOOKS // ============================================================================