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:
thzxx
2026-06-03 21:02:56 +08:00
parent d3c4062c10
commit 3cecb0f9eb
16 changed files with 106 additions and 66 deletions
+3 -1
View File
@@ -87,9 +87,11 @@ export function Editor({ darkMode }: EditorProps) {
}, [viewRef])
return (
<div className="editor-container">
<div className="editor-container" role="region" aria-label="Markdown编辑器">
<EditorToolbar viewRef={viewRef} />
<div ref={containerRef} className="codemirror-wrapper" />
</div>
)
}
Editor.displayName = 'Editor'
@@ -17,6 +17,12 @@ export function useCodeMirror({ content, onChange, darkMode }: UseCodeMirrorOpti
const containerRef = useRef<HTMLDivElement>(null)
const viewRef = useRef<EditorView | null>(null)
const isExternalUpdate = useRef(false)
const onChangeRef = useRef(onChange)
// 始终保持 onChangeRef 为最新回调
useEffect(() => {
onChangeRef.current = onChange
}, [onChange])
// 初始化编辑器
useEffect(() => {
@@ -61,7 +67,7 @@ export function useCodeMirror({ content, onChange, darkMode }: UseCodeMirrorOpti
EditorView.lineWrapping,
EditorView.updateListener.of(update => {
if (update.docChanged && !isExternalUpdate.current) {
onChange(update.state.doc.toString())
onChangeRef.current(update.state.doc.toString())
}
})
]