feat(M8): FR-T4/T5/T6/W2/W6/W7 标签页/布局接线——固定标签悬停浮现关闭按钮(T4); tab-store updateScroll+restore恢复滚动位置(T5); tabbarVisible接线App+TitleBar切换按钮(T6/W6); winIsMaximized IPC+最大化/还原图标切换(W2); 极简模式隐藏TabBar(W7); layout-tabs E2E 3 项

This commit is contained in:
hunter-dev
2026-08-26 15:20:30 +08:00
parent 8f6fd7082b
commit 1f3ede9956
7 changed files with 128 additions and 19 deletions
@@ -9,6 +9,7 @@ interface TabState {
closeTab: (id: string) => void;
setActive: (id: string) => void;
togglePin: (id: string) => void;
updateScroll: (id: string, scrollTop: number) => void; // FR-T5:保存滚动位置
closeAll: () => void; // FR-V6: 切库时清空全部标签页
renamePath: (oldPath: string, newPath: string) => void; // FR-T7: 重命名/移动后同步标签页路径
activePath: () => string | null;
@@ -46,6 +47,11 @@ export const useTabs = create<TabState>((set, get) => ({
setActive: (id) => { set({ activeId: id }); get().persist(); },
// FR-T5:更新标签页滚动位置(不触发 persist,避免频繁写入)
updateScroll: (id, scrollTop) => {
set(s => ({ tabs: s.tabs.map(t => t.id === id ? { ...t, scrollTop } : t) }));
},
togglePin: (id) => {
set(s => {
const tabs = s.tabs.map(t => t.id === id ? { ...t, pinned: !t.pinned } : t);