Skip to content

Commit 0fb957a

Browse files
committed
refactor: use graphql for chat readiness
1 parent bd84423 commit 0fb957a

File tree

2 files changed

+20
-10
lines changed

2 files changed

+20
-10
lines changed
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import { gql } from '@apollo/client'
2+
3+
export const GET_CHAT_READINESS = gql`
4+
query GetChatReadiness($message: String!, $sessionId: String!) {
5+
getChatReadiness(message: $message, sessionId: $sessionId) {
6+
isReady
7+
}
8+
}
9+
`

packages/frontend/src/pages/AiBuilder/components/ChatMessages/index.tsx

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,12 @@
11
import { useEffect, useState } from 'react'
2+
import { useLazyQuery } from '@apollo/client'
23
import { Box, Flex, VStack } from '@chakra-ui/react'
34

5+
import { GET_CHAT_READINESS } from '@/graphql/queries/get-chat-readiness'
46
import { Message } from '@/hooks/useChatStream'
57

8+
import { useAiBuilderContext } from '../../AiBuilderContext'
9+
610
import ChatMessage from './ChatMessage'
711
import PreviewStepsButton from './PreviewStepsButton'
812
import StreamingMessage from './StreamingMessage'
@@ -26,8 +30,11 @@ export default function ChatMessages({
2630
hasMessages,
2731
onOpenDrawer,
2832
}: ChatMessagesProps) {
33+
const { ddSessionId } = useAiBuilderContext()
2934
const [isReadyForPreview, setIsReadyForPreview] = useState(false)
3035

36+
const [getChatReadiness] = useLazyQuery(GET_CHAT_READINESS)
37+
3138
useEffect(() => {
3239
const checkReadiness = async () => {
3340
if (isStreaming || messages.length === 0) {
@@ -38,23 +45,17 @@ export default function ChatMessages({
3845
const lastMessage = messages[messages.length - 1]
3946

4047
try {
41-
const response = await fetch('/api/chat/readiness', {
42-
method: 'POST',
43-
body: JSON.stringify({ message: lastMessage.text }),
44-
headers: {
45-
'Content-Type': 'application/json',
46-
},
48+
const { data } = await getChatReadiness({
49+
variables: { message: lastMessage.text, sessionId: ddSessionId },
4750
})
48-
49-
const result = await response.json()
50-
setIsReadyForPreview(result.isReady)
51+
setIsReadyForPreview(data?.getChatReadiness?.isReady)
5152
} catch {
5253
setIsReadyForPreview(false)
5354
}
5455
}
5556

5657
checkReadiness()
57-
}, [isStreaming, messages])
58+
}, [ddSessionId, getChatReadiness, isStreaming, messages])
5859

5960
// Scroll to bottom when PreviewStepsButton appears
6061
useEffect(() => {

0 commit comments

Comments
 (0)