Why: The three-column workbench redesign converges entries and hierarchy: project switching tops the left rail (identity shown once), sessions and search stay centered, files/workspaces/account sink to the bottom. The right column becomes a Work/Files third column that absorbs the preview pane, which is no longer an independent fourth region; the artifacts workspace overlay folds into the Files entry, and stop control consolidates into the input area with a light fast/slow-lane status hint. Evidence: make test-frontend NOT_RUN at commit time; the run and its outcome are recorded in the Dev task card before integration. Impact: App.tsx layout and divider width tiers (work 280-560, files with open preview 420-1100); store UI state rightTab work/files plus filesView with syncFilesEntry replacing syncPreviewRail; Workbench dual entry; PreviewPane gains a back-to-list control; TaskSidebar project switcher; TopBar drops project identity; Conversation drops the header stop button and gains the input status line; workspaces.ts drops the artifacts builtin. Refs: three-column workbench proposal (2026-10-11), DESIGN.md 6/9.3 revision follows in the Dev repo.
21 lines
889 B
TypeScript
21 lines
889 B
TypeScript
// 顶栏:产品标识与待处理铃铛。项目身份在左栏顶部切换器集中显示一次(方案),
|
|
// 阶段徽章随切换器;本栏不再重复。
|
|
import { BrandMark, Icon, pendingCount } from '@ui'
|
|
import { store, useStore } from '../store'
|
|
|
|
export function TopBar() {
|
|
const pending = useStore(s => pendingCount(s.cards) + pendingCount(s.projectCards))
|
|
return (
|
|
<header className="topbar">
|
|
<BrandMark size={22} />
|
|
<span className="topbar-name">Agent-System</span>
|
|
<span className="topbar-spacer" />
|
|
<button className="topbar-bell" title={pending > 0 ? `待处理 ${pending},打开工作入口` : '工作入口'}
|
|
onClick={() => store.focusPending()}>
|
|
<Icon name="inbox" size={16} />
|
|
{pending > 0 && <span className="rail-badge" data-testid="topbar-pending">{pending}</span>}
|
|
</button>
|
|
</header>
|
|
)
|
|
}
|