3.4 KiB
historyService事件
page-change
-
详情: 页面切换
-
事件回调函数:
(undoRedo: UndoRedo) => void::: details 查看 UndoRedo 类定义 <<< @/../packages/editor/src/utils/undo-redo.ts#UndoRedo{ts} :::
change
-
详情: 历史记录发生变化
-
事件回调函数:
(state: StepValue | null) => void::: details 查看 StepValue 及关联类型定义 <<< @/../packages/editor/src/type.ts#StepValue{ts}
<<< @/../packages/editor/src/type.ts#HistoryOpType{ts}
<<< @/../packages/editor/src/type.ts#HistoryOpSource{ts}
<<< @/../packages/schema/src/index.ts#Id{ts}
<<< @/../packages/schema/src/index.ts#MNode{ts} :::
:::tip 当游标处于历史栈边界(已经无法继续撤销或重做)时,
UndoRedo.undo()/redo()返回null,对应change回调收到的state为null:::
code-block-history-change
-
详情: 代码块历史记录发生变化(
pushCodeBlock/undoCodeBlock/redoCodeBlock成功时触发) -
事件回调函数:
(codeBlockId: Id, step: CodeBlockStepValue) => void::: details 查看 CodeBlockStepValue 及关联类型定义 <<< @/../packages/editor/src/type.ts#CodeBlockStepValue{ts}
<<< @/../packages/editor/src/type.ts#HistoryOpSource{ts}
<<< @/../packages/schema/src/index.ts#CodeBlockContent{ts}
<<< @/../packages/schema/src/index.ts#Id{ts} :::
:::tip
- 新增触发的 step 中
oldContent为null - 删除触发的 step 中
newContent为null undo/redo返回null(边界状态)时不会触发该事件 :::
- 新增触发的 step 中
data-source-history-change
-
详情: 数据源历史记录发生变化(
pushDataSource/undoDataSource/redoDataSource成功时触发) -
事件回调函数:
(dataSourceId: Id, step: DataSourceStepValue) => void::: details 查看 DataSourceStepValue 及关联类型定义 <<< @/../packages/editor/src/type.ts#DataSourceStepValue{ts}
<<< @/../packages/editor/src/type.ts#HistoryOpSource{ts}
<<< @/../packages/schema/src/index.ts#Id{ts} :::
:::tip
- 新增触发的 step 中
oldSchema为null - 删除触发的 step 中
newSchema为null undo/redo返回null(边界状态)时不会触发该事件 :::
- 新增触发的 step 中
mark-saved
-
详情: 调用
markSaved/markPageSaved/markCodeBlockSaved/markDataSourceSaved标记「已保存」记录时触发 -
事件回调函数:
(payload: { kind: 'all' | 'page' | 'code-block' | 'data-source'; id?: Id }) => void::: tip
markSaved触发时kind为all,无id- 细粒度方法触发时
kind对应类别,id为目标页面 / 代码块 / 数据源 id :::
save-to-indexed-db
-
详情:
saveToIndexedDB把历史记录写入本地 IndexedDB 成功时触发 -
事件回调函数:
(snapshot: PersistedHistoryState) => void::: details 查看 PersistedHistoryState 类型定义 <<< @/../packages/editor/src/type.ts#PersistedHistoryState{ts}
<<< @/../packages/editor/src/utils/undo-redo.ts#SerializedUndoRedo{ts} :::
restore-from-indexed-db
-
详情:
restoreFromIndexedDB从本地 IndexedDB 读取并重建历史记录成功时触发(找不到记录时不触发) -
事件回调函数:
(snapshot: PersistedHistoryState) => void::: details 查看 PersistedHistoryState 类型定义 <<< @/../packages/editor/src/type.ts#PersistedHistoryState{ts} :::