From 67c6918b283b1e8d4ecbc7d2a7bf7bfd22fbf6dc Mon Sep 17 00:00:00 2001 From: kurihada Date: Fri, 12 Dec 2025 16:34:06 +0800 Subject: [PATCH] =?UTF-8?q?refactor(ui):=20=E5=B0=86=E5=B7=A5=E5=85=B7?= =?UTF-8?q?=E6=A0=8F=E6=8C=89=E9=92=AE=E7=A7=BB=E5=85=A5=20Chat=20Header?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 移除 App.tsx 中 absolute 定位的悬浮按钮 - 将设置和文件浏览器按钮移入 Chat Header - 通过 props 传递按钮状态和回调函数 - 修复 tsconfig.json 的 include 配置错误 --- packages/desktop/src/App.tsx | 51 +++------------- packages/desktop/src/pages/Chat.tsx | 87 +++++++++++++++++++++++---- packages/web/src/App.tsx | 46 +-------------- packages/web/src/pages/Chat.tsx | 91 ++++++++++++++++++++++++----- tsconfig.json | 3 - 5 files changed, 163 insertions(+), 115 deletions(-) diff --git a/packages/desktop/src/App.tsx b/packages/desktop/src/App.tsx index 28d659b..d18082a 100644 --- a/packages/desktop/src/App.tsx +++ b/packages/desktop/src/App.tsx @@ -70,54 +70,17 @@ export function App() { onCreateSession={handleCreateSession} /> - {/* 工具栏按钮 */} -
- {/* 配置按钮 */} - - - {/* 文件浏览器切换按钮 */} - -
-
{/* 聊天区域 */}
{currentSessionId ? ( - + setShowFileBrowser(!showFileBrowser)} + onOpenConfig={() => setShowConfig(true)} + /> ) : (

Select or create a session

diff --git a/packages/desktop/src/pages/Chat.tsx b/packages/desktop/src/pages/Chat.tsx index dc58ddf..b8e33ce 100644 --- a/packages/desktop/src/pages/Chat.tsx +++ b/packages/desktop/src/pages/Chat.tsx @@ -14,9 +14,18 @@ import { interface ChatPageProps { sessionId: string; + // 工具栏按钮 + showFileBrowser?: boolean; + onToggleFileBrowser?: () => void; + onOpenConfig?: () => void; } -export function ChatPage({ sessionId }: ChatPageProps) { +export function ChatPage({ + sessionId, + showFileBrowser, + onToggleFileBrowser, + onOpenConfig, +}: ChatPageProps) { const { messages, isConnected, @@ -43,17 +52,71 @@ export function ChatPage({ sessionId }: ChatPageProps) { {/* Header */}

Chat

-
- {isConnected ? ( - <> - - Connected - - ) : ( - <> - - Disconnected - +
+ {/* 连接状态 */} +
+ {isConnected ? ( + <> + + Connected + + ) : ( + <> + + Disconnected + + )} +
+ + {/* 工具栏按钮 */} + {(onOpenConfig || onToggleFileBrowser) && ( +
+ {/* 配置按钮 */} + {onOpenConfig && ( + + )} + + {/* 文件浏览器按钮 */} + {onToggleFileBrowser && ( + + )} +
)}
diff --git a/packages/web/src/App.tsx b/packages/web/src/App.tsx index 1e17604..e39084b 100644 --- a/packages/web/src/App.tsx +++ b/packages/web/src/App.tsx @@ -83,49 +83,6 @@ export function App() { responsive /> - {/* 工具栏按钮 - 移动端右移避开菜单按钮 */} -
- {/* 配置按钮 */} - - - {/* 文件浏览器切换按钮 - 移动端隐藏 */} - -
- {/* 主内容区域 */}
{/* 聊天区域 */} @@ -136,6 +93,9 @@ export function App() { sessionId={currentSessionId} onSessionNotFound={handleSessionNotFound} responsive + showFileBrowser={showFileBrowser} + onToggleFileBrowser={() => setShowFileBrowser(!showFileBrowser)} + onOpenConfig={() => setShowConfig(true)} /> ) : (
diff --git a/packages/web/src/pages/Chat.tsx b/packages/web/src/pages/Chat.tsx index b08bb33..f9e8e4b 100644 --- a/packages/web/src/pages/Chat.tsx +++ b/packages/web/src/pages/Chat.tsx @@ -16,9 +16,20 @@ interface ChatPageProps { sessionId: string; onSessionNotFound?: () => void; responsive?: boolean; + // 工具栏按钮 + showFileBrowser?: boolean; + onToggleFileBrowser?: () => void; + onOpenConfig?: () => void; } -export function ChatPage({ sessionId, onSessionNotFound, responsive = false }: ChatPageProps) { +export function ChatPage({ + sessionId, + onSessionNotFound, + responsive = false, + showFileBrowser, + onToggleFileBrowser, + onOpenConfig, +}: ChatPageProps) { const { messages, isConnected, @@ -44,19 +55,73 @@ export function ChatPage({ sessionId, onSessionNotFound, responsive = false }: C return (
{/* Header */} -
+

Chat

-
- {isConnected ? ( - <> - - Connected - - ) : ( - <> - - Disconnected - +
+ {/* 连接状态 */} +
+ {isConnected ? ( + <> + + Connected + + ) : ( + <> + + Disconnected + + )} +
+ + {/* 工具栏按钮 */} + {(onOpenConfig || onToggleFileBrowser) && ( +
+ {/* 配置按钮 */} + {onOpenConfig && ( + + )} + + {/* 文件浏览器按钮 - 仅桌面端显示 */} + {onToggleFileBrowser && ( + + )} +
)}
diff --git a/tsconfig.json b/tsconfig.json index c83c533..5f291e3 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -4,8 +4,6 @@ "module": "NodeNext", "moduleResolution": "NodeNext", "lib": ["ES2022"], - "outDir": "./dist", - "rootDir": "./src", "strict": true, "esModuleInterop": true, "skipLibCheck": true, @@ -15,6 +13,5 @@ "declarationMap": true, "sourceMap": true }, - "include": ["src/**/*"], "exclude": ["node_modules", "dist"] }