Skip to content

Commit 968fb45

Browse files
committed
fix: chat keep loading issue when fetch error
1 parent bf478f2 commit 968fb45

1 file changed

Lines changed: 16 additions & 3 deletions

File tree

packages/plugins/robot/src/Main.vue

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,7 @@ import useMcpServer from './mcp/useMcp'
105105
import MarkdownRenderer from './mcp/MarkdownRenderer.vue'
106106
import LoadingRenderer from './mcp/LoadingRenderer.vue'
107107
import { sendMcpRequest } from './mcp/utils'
108+
import type { RobotMessage } from './mcp/types'
108109
109110
export default {
110111
components: {
@@ -127,7 +128,7 @@ export default {
127128
const avatarUrl = ref('')
128129
const chatWindowOpened = ref(true)
129130
let sessionProcess = null
130-
const messages = ref([])
131+
const messages = ref<RobotMessage[]>([])
131132
const activeMessages = ref([])
132133
const connectedFailed = ref(false)
133134
const inputContent = ref('')
@@ -234,7 +235,18 @@ export default {
234235
}
235236
})
236237
} catch (error) {
237-
messages.value[messages.value.length - 1].content = '连接失败'
238+
const { renderContent } = messages.value.at(-1)!
239+
if (renderContent?.length) {
240+
if (renderContent.at(-1)!.type === 'loading') {
241+
renderContent.pop()
242+
}
243+
renderContent.push({
244+
type: 'text',
245+
content: '连接失败, 请稍后重试'
246+
})
247+
} else {
248+
messages.value.at(-1)!.content = '连接失败, 请稍后重试'
249+
}
238250
} finally {
239251
inProcesing.value = false
240252
requestLoading.value = false
@@ -431,7 +443,8 @@ export default {
431443
contentRenderer: MarkdownRenderer,
432444
customContentField: 'renderContent'
433445
},
434-
user: { placement: 'end', avatar: userAvatar, maxWidth: '90%', contentRenderer: MarkdownRenderer }
446+
user: { placement: 'end', avatar: userAvatar, maxWidth: '90%', contentRenderer: MarkdownRenderer },
447+
system: { hidden: true }
435448
}
436449
437450
watch([() => activeMessages.value.length, () => activeMessages.value.at(-1)?.renderContent?.length ?? 0], () => {

0 commit comments

Comments
 (0)