11import { useEffect , useState } from 'react'
2+ import { useLazyQuery } from '@apollo/client'
23import { Box , Flex , VStack } from '@chakra-ui/react'
34
5+ import { GET_CHAT_READINESS } from '@/graphql/queries/get-chat-readiness'
46import { Message } from '@/hooks/useChatStream'
57
8+ import { useAiBuilderContext } from '../../AiBuilderContext'
9+
610import ChatMessage from './ChatMessage'
711import PreviewStepsButton from './PreviewStepsButton'
812import 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