feat(lesson-preparation): 组合 ExpandedSlice 到 EditorState
This commit is contained in:
@@ -5,25 +5,33 @@ import { createEditorSlice, type EditorSlice } from "./editor-slice";
|
||||
import { createSelectionSlice, type SelectionSlice } from "./selection-slice";
|
||||
import { createVersionSlice, type VersionSlice } from "./version-slice";
|
||||
import { createHistorySlice, type HistorySlice } from "./history-slice";
|
||||
import { createExpandedSlice, type ExpandedSlice } from "./expanded-slice";
|
||||
|
||||
/**
|
||||
* V4 P2-6 修复:将单体 Zustand store(原 303 行)拆分为 3 个独立 slice。
|
||||
* V5-2 新增:history-slice 撤销/重做栈(50 步上限)。
|
||||
* V4 纸感重构:新增 expanded-slice(节点展开到正文流的状态)。
|
||||
*
|
||||
* - editor-slice: 文档结构(planId/title/doc)及所有文档操作方法
|
||||
* - selection-slice: 节点选中状态(selectedNodeId / selectNode)
|
||||
* - selection-slice: 节点选中状态(selectedNodeId / selectNode / anchorNodeForSelection)
|
||||
* - version-slice: 草稿版本与保存状态(isDirty/isSaving/lastSavedAt/saveError/isOnline)
|
||||
* - history-slice: 撤销/重做栈(past/future/canUndo/canRedo/undo/redo)
|
||||
* - expanded-slice: V4 节点展开到正文流的状态(expandedNodeIds / toggleExpand / setExpanded)
|
||||
*
|
||||
* 主文件仅负责组合 slice 并导出统一的 EditorState 类型,方便测试与维护。
|
||||
* 各 slice 通过 `import type { EditorState }` 引用合并后的类型,TypeScript
|
||||
* 编译后该类型导入会被完全移除,运行时无循环依赖。
|
||||
*/
|
||||
export type EditorState = EditorSlice & SelectionSlice & VersionSlice & HistorySlice;
|
||||
export type EditorState = EditorSlice &
|
||||
SelectionSlice &
|
||||
VersionSlice &
|
||||
HistorySlice &
|
||||
ExpandedSlice;
|
||||
|
||||
export const useLessonPlanEditor = create<EditorState>()((...a) => ({
|
||||
...createEditorSlice(...a),
|
||||
...createSelectionSlice(...a),
|
||||
...createVersionSlice(...a),
|
||||
...createHistorySlice(...a),
|
||||
...createExpandedSlice(...a),
|
||||
}));
|
||||
|
||||
Reference in New Issue
Block a user