Skip to content

Commit 734986d

Browse files
committed
feat: add readiness check from frontend
1 parent a9f77d4 commit 734986d

File tree

1 file changed

+33
-2
lines changed
  • packages/frontend/src/pages/AiBuilder/components/ChatMessages

1 file changed

+33
-2
lines changed

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

Lines changed: 33 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { useEffect, useState } from 'react'
12
import { Box, Flex, VStack } from '@chakra-ui/react'
23

34
import { Message } from '@/hooks/useChatStream'
@@ -23,8 +24,38 @@ export default function ChatMessages({
2324
messagesEndRef,
2425
messagesContainerRef,
2526
hasMessages,
26-
onOpenDrawer: onOpenDrawer,
27+
onOpenDrawer,
2728
}: ChatMessagesProps) {
29+
const [isReadyForPreview, setIsReadyForPreview] = useState(false)
30+
31+
useEffect(() => {
32+
const checkReadiness = async () => {
33+
if (isStreaming || messages.length === 0) {
34+
setIsReadyForPreview(false)
35+
return
36+
}
37+
38+
const lastMessage = messages[messages.length - 1]
39+
40+
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+
},
47+
})
48+
49+
const result = await response.json()
50+
setIsReadyForPreview(result.isReady)
51+
} catch {
52+
setIsReadyForPreview(false)
53+
}
54+
}
55+
56+
checkReadiness()
57+
}, [isStreaming, messages])
58+
2859
return (
2960
<Flex
3061
ref={messagesContainerRef}
@@ -39,7 +70,7 @@ export default function ChatMessages({
3970
<ChatMessage key={index} message={message} />
4071
))}
4172

42-
{hasMessages && !isStreaming && (
73+
{hasMessages && !isStreaming && isReadyForPreview && (
4374
<PreviewStepsButton
4475
messages={messages}
4576
onOpenDrawer={onOpenDrawer}

0 commit comments

Comments
 (0)