MCPcopy Create free account
hub / github.com/Seanium/ChatMap / handleSubmit

Function handleSubmit

components/chat-interface.tsx:112–160  ·  view source on GitHub ↗
(e: React.FormEvent)

Source from the content-addressed store, hash-verified

110
111 // 提交查询并开始流式响应
112 const handleSubmit = async (e: React.FormEvent) => {
113 e.preventDefault()
114
115 // 验证查询
116 const trimmedQuery = query.trim()
117 if (!trimmedQuery) return
118
119 // 重置文本框高度
120 resetTextareaHeight()
121
122 // 检查是否设置了模型
123 if (!hasModelSettings) {
124 toast({
125 title: "缺少模型设置",
126 description: "请先配置您的 AI 模型设置",
127 variant: "destructive",
128 })
129 return
130 }
131
132 // 添加用户消息
133 const userMessageId = generateId()
134 const userMessage: Message = {
135 id: userMessageId,
136 role: "user",
137 content: trimmedQuery,
138 }
139
140 // 创建助手的初始加载消息
141 const assistantMessageId = generateId()
142 const assistantMessage: Message = {
143 id: assistantMessageId,
144 role: "assistant",
145 content: "",
146 isLoading: true,
147 }
148
149 // 添加消息到对话中
150 setMessages((prev) => [...prev, userMessage, assistantMessage])
151
152 // 清空输入
153 setQuery("")
154
155 // 滚动到底部
156 setTimeout(scrollToBottom, 100)
157
158 // 开始生成回复
159 handleGenerateResponse(trimmedQuery, userMessageId, assistantMessageId)
160 }
161
162 const handleClearConversation = () => {
163 // 如果正在生成回复,先停止所有进行中的操作

Callers

nothing calls this directly

Calls 4

resetTextareaHeightFunction · 0.85
generateIdFunction · 0.85
handleGenerateResponseFunction · 0.85
toastFunction · 0.50

Tested by

no test coverage detected