v0.1.1: 多Agent代码质量审查+优化
- fix: useCodeMirror onChange闭包过期导致编辑器内容丢失同步(P0) - feat: 全部组件添加displayName(React DevTools调试支持) - feat: 全部组件添加ARIA属性(WCAG无障碍支持) - fix: App异步操作添加try-catch错误边界 - fix: tabStore空catch块添加错误日志 - fix: sidebarStore Set→string[](Zustand可序列化) - fix: useDragDrop readFile错误处理+空文件修复 - fix: useSettings/useTheme load()添加错误处理 - fix: useTheme toggleDarkMode引用优化 - chore: 版本号升级至0.1.1
This commit is contained in:
@@ -6,7 +6,7 @@ interface SidebarState {
|
||||
isVisible: boolean
|
||||
rootPath: string | null
|
||||
tree: FileNode[]
|
||||
expandedDirs: Set<string>
|
||||
expandedDirs: string[]
|
||||
sidebarWidth: number
|
||||
_loaded: boolean
|
||||
|
||||
@@ -23,7 +23,7 @@ export const useSidebarStore = create<SidebarState>((set, get) => ({
|
||||
isVisible: true,
|
||||
rootPath: null,
|
||||
tree: [],
|
||||
expandedDirs: new Set<string>(),
|
||||
expandedDirs: [],
|
||||
sidebarWidth: 240,
|
||||
_loaded: false,
|
||||
|
||||
@@ -50,26 +50,17 @@ export const useSidebarStore = create<SidebarState>((set, get) => ({
|
||||
setRootPath: (path) => set({ rootPath: path }),
|
||||
setTree: (tree) => set({ tree }),
|
||||
toggleDir: (path) =>
|
||||
set(state => {
|
||||
const newSet = new Set(state.expandedDirs)
|
||||
if (newSet.has(path)) {
|
||||
newSet.delete(path)
|
||||
} else {
|
||||
newSet.add(path)
|
||||
}
|
||||
return { expandedDirs: newSet }
|
||||
}),
|
||||
set(state => ({
|
||||
expandedDirs: state.expandedDirs.includes(path)
|
||||
? state.expandedDirs.filter(p => p !== path)
|
||||
: [...state.expandedDirs, path]
|
||||
})),
|
||||
expandDirs: (paths) =>
|
||||
set(state => {
|
||||
const newSet = new Set(state.expandedDirs)
|
||||
let changed = false
|
||||
for (const p of paths) {
|
||||
if (!newSet.has(p)) {
|
||||
newSet.add(p)
|
||||
changed = true
|
||||
}
|
||||
}
|
||||
return changed ? { expandedDirs: newSet } : state
|
||||
const newDirs = paths.filter(p => !state.expandedDirs.includes(p))
|
||||
return newDirs.length > 0
|
||||
? { expandedDirs: [...state.expandedDirs, ...newDirs] }
|
||||
: state
|
||||
}),
|
||||
setSidebarWidth: (width) => {
|
||||
set({ sidebarWidth: width })
|
||||
|
||||
Reference in New Issue
Block a user