From 4efee3a06a2f1c3a2ae1373de8d01f2933675812 Mon Sep 17 00:00:00 2001 From: gaoziman <2942894660@qq.com> Date: Wed, 24 Dec 2025 23:10:48 +0800 Subject: [PATCH] =?UTF-8?q?refactor(=E8=81=8A=E5=A4=A9=E5=A4=B4=E9=83=A8):?= =?UTF-8?q?=20=E7=AE=80=E5=8C=96=20ChatHeaderInfo=20=E7=BB=84=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 移除模型选择器功能及相关 UI - 简化组件 props,只保留助手信息展示 - 清理未使用的导入和状态管理代码 --- src/app/chat/[id]/page.tsx | 5 +- src/components/features/ChatHeader.tsx | 135 +------------------------ 2 files changed, 2 insertions(+), 138 deletions(-) diff --git a/src/app/chat/[id]/page.tsx b/src/app/chat/[id]/page.tsx index 1c36388..0878c0b 100644 --- a/src/app/chat/[id]/page.tsx +++ b/src/app/chat/[id]/page.tsx @@ -552,13 +552,10 @@ export default function ChatPage({ params }: PageProps) { - {/* 第二行:助手和模型信息 */} + {/* 第二行:助手信息 */}
diff --git a/src/components/features/ChatHeader.tsx b/src/components/features/ChatHeader.tsx index 9584b0d..6c7d233 100644 --- a/src/components/features/ChatHeader.tsx +++ b/src/components/features/ChatHeader.tsx @@ -1,8 +1,6 @@ 'use client'; -import { useState, useRef, useEffect } from 'react'; -import { ChevronDown, Check, Bot } from 'lucide-react'; -import { cn } from '@/lib/utils'; +import { Bot } from 'lucide-react'; import { IconRenderer } from '@/components/ui/IconRenderer'; interface Assistant { @@ -12,71 +10,13 @@ interface Assistant { description: string | null; } -interface Model { - id: string; - name: string; - displayName: string; - tag?: string; -} - interface ChatHeaderInfoProps { assistant: Assistant | null; - currentModel: string; - models: Model[]; - onModelChange: (modelId: string) => Promise; } export function ChatHeaderInfo({ assistant, - currentModel, - models, - onModelChange, }: ChatHeaderInfoProps) { - const [isModelMenuOpen, setIsModelMenuOpen] = useState(false); - const [isChanging, setIsChanging] = useState(false); - const [showSuccess, setShowSuccess] = useState(false); - const menuRef = useRef(null); - - // 点击外部关闭菜单 - useEffect(() => { - const handleClickOutside = (event: MouseEvent) => { - if (menuRef.current && !menuRef.current.contains(event.target as Node)) { - setIsModelMenuOpen(false); - } - }; - if (isModelMenuOpen) { - document.addEventListener('mousedown', handleClickOutside); - } - return () => { - document.removeEventListener('mousedown', handleClickOutside); - }; - }, [isModelMenuOpen]); - - // 处理模型切换 - const handleModelSelect = async (modelId: string) => { - if (modelId === currentModel || isChanging) return; - - try { - setIsChanging(true); - await onModelChange(modelId); - setIsModelMenuOpen(false); - - // 显示成功提示 - setShowSuccess(true); - setTimeout(() => { - setShowSuccess(false); - }, 2000); - } catch (error) { - console.error('Failed to change model:', error); - } finally { - setIsChanging(false); - } - }; - - // 获取当前模型的显示名称 - const currentModelInfo = models.find((m) => m.id === currentModel); - const modelDisplayName = currentModelInfo?.displayName || currentModel; - return (
{/* 助手信息 */} @@ -98,79 +38,6 @@ export function ChatHeaderInfo({ )}
- - {/* 分隔符 */} - · - - {/* 模型选择器 */} -
- - - {/* 模型下拉菜单 */} - {isModelMenuOpen && ( -
-
- 选择模型 -
- {models.map((model) => ( - - ))} -
- )} -
- - {/* 成功提示 */} - {showSuccess && ( -
- - 已切换 -
- )} ); }