v0.3.6: 修复文档大纲导航Bug + 新增自动保存功能
Bug修复:
- 文档大纲点击标题未定位到编辑器内容 (P0)
- 根因: raw markdown字符偏移 ≠ ProseMirror文档位置
- 改为通过 view.state.doc.descendants() 遍历节点树,
按 heading类型名 + level + textContent 三重匹配定位
新增功能:
- 自动保存 (2秒防抖), 仅对文件标签页生效
- 状态栏显示 自动/保存中... 指示器
版本同步: package.json / AboutDialog / README 均更新至 v0.3.6
This commit is contained in:
@@ -5,7 +5,15 @@ import { useDocStats } from '../../hooks/useDocStats'
|
||||
import { getFileName } from '../../lib/fileUtils'
|
||||
import { LoadingSpinner } from '../LoadingSpinner/LoadingSpinner'
|
||||
|
||||
export const StatusBar = React.memo(function StatusBar() {
|
||||
interface StatusBarProps {
|
||||
isAutoSaving?: boolean
|
||||
autoSaveEnabled?: boolean
|
||||
}
|
||||
|
||||
export const StatusBar = React.memo(function StatusBar({
|
||||
isAutoSaving = false,
|
||||
autoSaveEnabled = true
|
||||
}: StatusBarProps) {
|
||||
const activeTab = useTabStore(s => s.getActiveTab())
|
||||
const loadingStates = useEditorStore(s => s.loadingStates)
|
||||
const stats = useDocStats(activeTab?.content)
|
||||
@@ -50,6 +58,18 @@ export const StatusBar = React.memo(function StatusBar() {
|
||||
<span className="status-divider">|</span>
|
||||
</>
|
||||
)}
|
||||
{activeTab?.filePath && autoSaveEnabled && (
|
||||
<>
|
||||
<span
|
||||
className={`status-auto-save${isAutoSaving ? ' saving' : ''}`}
|
||||
title={isAutoSaving ? '正在自动保存...' : '自动保存已开启'}
|
||||
aria-label={isAutoSaving ? '正在自动保存' : '自动保存'}
|
||||
>
|
||||
{isAutoSaving ? '保存中...' : '自动'}
|
||||
</span>
|
||||
<span className="status-divider">|</span>
|
||||
</>
|
||||
)}
|
||||
<span id="status-encoding">UTF-8</span>
|
||||
<span className="status-divider">|</span>
|
||||
<span id="status-lang">Markdown</span>
|
||||
|
||||
Reference in New Issue
Block a user