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 && (
-
-
- 已切换
-
- )}
);
}