diff --git a/www/packages/docs-ui/src/components/AiAssistant/ChatWindow/Input/index.tsx b/www/packages/docs-ui/src/components/AiAssistant/ChatWindow/Input/index.tsx
index 477627a538..23f15cef83 100644
--- a/www/packages/docs-ui/src/components/AiAssistant/ChatWindow/Input/index.tsx
+++ b/www/packages/docs-ui/src/components/AiAssistant/ChatWindow/Input/index.tsx
@@ -1,6 +1,11 @@
import React, { useEffect, useMemo, useRef } from "react"
import clsx from "clsx"
-import { ArrowUpCircleSolid, LightBulb, LightBulbSolid } from "@medusajs/icons"
+import {
+ ArrowUpCircleSolid,
+ LightBulb,
+ LightBulbSolid,
+ StopCircleSolid,
+} from "@medusajs/icons"
import {
useAiAssistant,
useAnalytics,
@@ -20,7 +25,7 @@ export const AiAssistantChatWindowInput = ({
}: AiAssistantChatWindowInputProps) => {
const { chatOpened, inputRef, loading, setChatOpened, isCaptchaLoaded } =
useAiAssistant()
- const { submitQuery, conversation } = useChat()
+ const { submitQuery, conversation, stopGeneration } = useChat()
const { track } = useAnalytics()
const { active, toggle } = useDeepThinking()
const { isBrowser } = useIsBrowser()
@@ -43,6 +48,12 @@ export const AiAssistantChatWindowInput = ({
overrideQuestion?: string
) => {
e?.preventDefault()
+ if (loading) {
+ // stop the generation
+ stopGeneration()
+ return
+ }
+
submitQuery(overrideQuestion || question)
if (!conversation.length) {
track({
@@ -206,10 +217,10 @@ export const AiAssistantChatWindowInput = ({
"appearance-none p-0 text-medusa-fg-base disabled:text-medusa-fg-disabled",
"transition-colors"
)}
- disabled={!question || loading || !isCaptchaLoaded}
+ disabled={!isCaptchaLoaded || (!question && !loading)}
type="submit"
>
-
+ {loading ? : }
diff --git a/www/packages/docs-ui/src/components/AiAssistant/ChatWindow/index.tsx b/www/packages/docs-ui/src/components/AiAssistant/ChatWindow/index.tsx
index 53600823fe..dd1e816215 100644
--- a/www/packages/docs-ui/src/components/AiAssistant/ChatWindow/index.tsx
+++ b/www/packages/docs-ui/src/components/AiAssistant/ChatWindow/index.tsx
@@ -53,6 +53,7 @@ export const AiAssistantChatWindow = () => {
content: item.question,
sources: item.sources,
question_id: item.id,
+ isGenerationAborted: item.isGenerationAborted,
}}
/>
{
content: item.answer,
sources: item.sources,
question_id: item.id,
+ isGenerationAborted: item.isGenerationAborted,
}}
/>
diff --git a/www/packages/docs-ui/src/components/AiAssistant/ThreadItem/index.tsx b/www/packages/docs-ui/src/components/AiAssistant/ThreadItem/index.tsx
index 510689d5e5..4397c18c72 100644
--- a/www/packages/docs-ui/src/components/AiAssistant/ThreadItem/index.tsx
+++ b/www/packages/docs-ui/src/components/AiAssistant/ThreadItem/index.tsx
@@ -25,6 +25,13 @@ export const AiAssistantThreadItem = ({ item }: AiAssistantThreadItemProps) => {
return !item.question_id && item.content.length === 0
}, [item, error])
+ if (
+ item.isGenerationAborted &&
+ item.type === "answer" &&
+ !item.content.length
+ ) {
+ return null
+ }
return (
(null)