- 集成 MetonaToast v2.0.0 替换自研 Toast 组件(右上角、进度条、自动关闭、主题联动) - 修复 sidebar resize 未持久化到 IndexedDB - 修复 Ctrl+Tab MRU 切换逻辑与文档不一致 - 完善 WYSIWYG 模式标签切换选区恢复 - 清理死代码(useActiveHeading observerRef、旧 Toast 样式、重复滚动条样式、SearchReplace 重复检查) - 同步 DESIGN.md / docs 文档(CodeMirror→Milkdown、stores 计数、editorStore 字段) - 新增 .npmrc.example 模板 - 更新关于对话框与文档远程地址为 Gitea - 版本号 0.3.12 → 0.3.13
24 lines
743 B
TypeScript
24 lines
743 B
TypeScript
import { useEffect } from 'react'
|
|
import { useEditorStore } from '../stores/editorStore'
|
|
import { settingsRepository } from '../db/settingsRepository'
|
|
import { syncToastTheme } from '../lib/toast'
|
|
|
|
/**
|
|
* AR-04: 主题 hook
|
|
* 不再独立加载设置(由 useSettingsInit 统一加载)
|
|
* 仅负责主题切换时的同步和保存
|
|
*/
|
|
export function useTheme() {
|
|
const darkMode = useEditorStore(s => s.darkMode)
|
|
const toggleDarkMode = useEditorStore(s => s.toggleDarkMode)
|
|
|
|
// darkMode 变化时同步 class 并保存
|
|
useEffect(() => {
|
|
document.documentElement.classList.toggle('dark', darkMode)
|
|
settingsRepository.save({ darkMode })
|
|
syncToastTheme(darkMode)
|
|
}, [darkMode])
|
|
|
|
return { darkMode, toggleDarkMode }
|
|
}
|