fix(chat): surface PolicyDecision feedback on send failure
This commit is contained in:
@@ -11,6 +11,7 @@ import { Input } from "@/components/ui/input"
|
|||||||
import { ScrollArea } from "@/components/ui/scroll-area"
|
import { ScrollArea } from "@/components/ui/scroll-area"
|
||||||
import { sendImageMessage, sendTextMessage } from "@/lib/api/chat"
|
import { sendImageMessage, sendTextMessage } from "@/lib/api/chat"
|
||||||
import { cn } from "@/lib/utils"
|
import { cn } from "@/lib/utils"
|
||||||
|
import { notifyInfo } from "@/lib/toast"
|
||||||
import { useAuthStore } from "@/store/auth"
|
import { useAuthStore } from "@/store/auth"
|
||||||
import { useChatStore } from "@/store/chat"
|
import { useChatStore } from "@/store/chat"
|
||||||
|
|
||||||
@@ -146,7 +147,8 @@ export default function ChatDetailPage({ params }: { params: Promise<{ id: strin
|
|||||||
onChange={(event) => {
|
onChange={(event) => {
|
||||||
const file = event.target.files?.[0]
|
const file = event.target.files?.[0]
|
||||||
if (!file) return
|
if (!file) return
|
||||||
sendImageMessage(session.id, URL.createObjectURL(file))
|
const result = sendImageMessage(session.id, URL.createObjectURL(file))
|
||||||
|
if (result && !result.ok) notifyInfo(result.message ?? "发送失败")
|
||||||
event.target.value = ""
|
event.target.value = ""
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
@@ -157,7 +159,11 @@ export default function ChatDetailPage({ params }: { params: Promise<{ id: strin
|
|||||||
const text = input.trim()
|
const text = input.trim()
|
||||||
if (!text) return
|
if (!text) return
|
||||||
|
|
||||||
sendTextMessage(session.id, text)
|
const result = sendTextMessage(session.id, text)
|
||||||
|
if (result && !result.ok) {
|
||||||
|
notifyInfo(result.message ?? "发送失败")
|
||||||
|
return
|
||||||
|
}
|
||||||
setInput("")
|
setInput("")
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
|
|||||||
Reference in New Issue
Block a user