feat(ui): 优化 Chat 页面 Header 布局

- 移除左上角 "Chat" 标题
- Token 使用情况移至左侧
- 压缩按钮添加文字标签,更直观
- 工具栏按钮保持在右侧
This commit is contained in:
2025-12-17 17:59:40 +08:00
parent ddbd56a0ac
commit c892069ea1
2 changed files with 51 additions and 46 deletions
+8 -2
View File
@@ -158,19 +158,25 @@ export function ContextUsage({
variant="ghost" variant="ghost"
size="sm" size="sm"
className={cn( className={cn(
'h-5 px-1.5 text-xs', 'h-5 px-1.5 text-xs gap-1',
shouldCompress shouldCompress
? 'text-amber-500 hover:text-amber-400 hover:bg-amber-500/10' ? 'text-amber-500 hover:text-amber-400 hover:bg-amber-500/10'
: 'text-fg-muted hover:text-fg-secondary hover:bg-surface-muted' : 'text-fg-muted hover:text-fg-secondary hover:bg-surface-muted'
)} )}
onClick={handleCompress} onClick={handleCompress}
disabled={compressing} disabled={compressing}
title="压缩对话上下文" title="压缩对话上下文以释放 token 空间"
> >
{compressing ? ( {compressing ? (
<>
<RefreshCw size={12} className="animate-spin" /> <RefreshCw size={12} className="animate-spin" />
<span></span>
</>
) : ( ) : (
<>
<Zap size={12} /> <Zap size={12} />
<span></span>
</>
)} )}
</Button> </Button>
)} )}
+5 -6
View File
@@ -134,9 +134,8 @@ export function ChatPage({
<div className="flex-1 flex flex-col h-full"> <div className="flex-1 flex flex-col h-full">
{/* Header */} {/* Header */}
<div className="flex items-center justify-between px-4 md:px-6 py-3 border-b border-line bg-surface-subtle"> <div className="flex items-center justify-between px-4 md:px-6 py-3 border-b border-line bg-surface-subtle">
<h1 className="text-lg font-medium text-fg">Chat</h1> {/* 左侧:上下文使用情况 */}
<div className="flex items-center gap-3 flex-shrink-0"> <div className="flex items-center">
{/* 上下文使用情况 - 紧凑模式 */}
{sessionId && ( {sessionId && (
<ContextUsage <ContextUsage
sessionId={sessionId} sessionId={sessionId}
@@ -145,10 +144,11 @@ export function ChatPage({
refreshInterval={30000} refreshInterval={30000}
/> />
)} )}
</div>
{/* 工具栏按钮 */} {/* 右侧:工具栏按钮 */}
{(onOpenCommands || onOpenMCP || onOpenHooks || onOpenAgents || onOpenCheckpoints || onOpenProviders || onOpenLSP || onOpenDiagnostics || onOpenSessions) && ( {(onOpenCommands || onOpenMCP || onOpenHooks || onOpenAgents || onOpenCheckpoints || onOpenProviders || onOpenLSP || onOpenDiagnostics || onOpenSessions) && (
<div className="flex items-center gap-1.5 border-l border-line-muted pl-3"> <div className="flex items-center gap-1.5 flex-shrink-0">
{/* LSP 诊断指示器 */} {/* LSP 诊断指示器 */}
{(onOpenLSP || onOpenDiagnostics) && ( {(onOpenLSP || onOpenDiagnostics) && (
<DiagnosticsIndicator <DiagnosticsIndicator
@@ -185,7 +185,6 @@ export function ChatPage({
</div> </div>
)} )}
</div> </div>
</div>
{/* Messages */} {/* Messages */}
<div className="flex-1 overflow-y-auto p-6"> <div className="flex-1 overflow-y-auto p-6">