From d9d9db16fe16cac62384c819aa70a9eda228c816 Mon Sep 17 00:00:00 2001 From: cfngc4594 Date: Sat, 12 Apr 2025 13:17:48 +0800 Subject: [PATCH] refactor(bot): simplify layout and improve UI rendering in Bot component --- src/app/(app)/problems/[id]/features/bot.tsx | 132 ++++++++++--------- 1 file changed, 67 insertions(+), 65 deletions(-) diff --git a/src/app/(app)/problems/[id]/features/bot.tsx b/src/app/(app)/problems/[id]/features/bot.tsx index 70f7f02..c81eb25 100644 --- a/src/app/(app)/problems/[id]/features/bot.tsx +++ b/src/app/(app)/problems/[id]/features/bot.tsx @@ -14,12 +14,13 @@ import { useProblem } from "@/hooks/use-problem"; import MdxPreview from "@/components/mdx-preview"; import { Textarea } from "@/components/ui/textarea"; import { BotIcon, SendHorizonal } from "lucide-react"; -import { ScrollArea, ScrollBar } from "@/components/ui/scroll-area"; +import { ScrollArea } from "@/components/ui/scroll-area"; import { ChatMessageList } from "@/components/ui/chat/chat-message-list"; import { ChatBubble, ChatBubbleMessage } from "@/components/ui/chat/chat-bubble"; export default function Bot() { const { problemId, problem, currentLang, currentValue } = useProblem(); + const { messages, input, handleInputChange, setMessages, handleSubmit } = useChat({ initialMessages: [ { @@ -33,6 +34,7 @@ export default function Bot() { const handleFormSubmit = useCallback( (e: React.FormEvent) => { e.preventDefault(); + if (!input.trim()) { toast.error("Input cannot be empty"); return; @@ -52,72 +54,72 @@ export default function Bot() { return (
-
-
-
- {!messages.some( - (message) => message.role === "user" || message.role === "assistant" - ) && ( -
- - Ask Bot - Powered by Vercel Ai SDK -
- )} - - - {messages - .filter( - (message) => message.role === "user" || message.role === "assistant" - ) - .map((message) => ( - - - - - - ))} - - - -
-