WorkingTreeAsyncStates
Defined in: packages/rxdb-plugin-working-tree/src/working-tree/async-state.ts:134
三端入口持有的全部状态,一项能力一个字段。
Remarks
键集是 US-306 阶段 C 收口的六项,加上 T110 补进来的 restore() / restoreSession(),
再加 T123 补进来的 switchBranch(),加上 commit 明细侧的 commitChanges(),
与 auto-enable 补进来的 enableIfEmpty()——tri-framework-api.md §3 清单十二项到齐。
switchBranchState 走命令状态而不是查询:切分支没有「空」这一形态,成功就是切过去了
(VersionManager.switchBranch() 返回 void),被 requireClean 拒掉则是一次
WorkingTreeDirtyError,落在 error 相位。切到当前分支是一次 no-op 成功,
与 discard() 的 discardedCount: 0 同形,不是「这里没有内容」。
做成一个记录而不是十二个独立容器:三端的响应式原语都按「一次写入触发一次通知」工作,
十二个容器就是十二条通知路径,而一次 commit() 会同时改 commitState 与 statusState
(命令成功后刷新摘要)——两条路径先后到达时,UI 会看到「提交成功了但摘要还是旧的」
这一帧。
Properties
commitChangesState
readonly commitChangesState: WorkingTreeQueryState<CommitChangeSetPage>;
Defined in: packages/rxdb-plugin-working-tree/src/working-tree/async-state.ts:154
commitChanges() 的状态;空即「这个 commit 没有任何变更单元」(基线节点)
commitState
readonly commitState: WorkingTreeCommandState<CommitResult>;
Defined in: packages/rxdb-plugin-working-tree/src/working-tree/async-state.ts:157
commit() 的状态;没有 empty
diffState
readonly diffState: WorkingTreeQueryState<WorkingTreeDiff>;
Defined in: packages/rxdb-plugin-working-tree/src/working-tree/async-state.ts:148
diff() 的状态;空即「没有可展示的改动」
discardState
readonly discardState: WorkingTreeCommandState<WorkingTreeDiscardResult>;
Defined in: packages/rxdb-plugin-working-tree/src/working-tree/async-state.ts:160
discard() 的状态;没有 empty
enableIfEmptyState
readonly enableIfEmptyState: WorkingTreeCommandState<WorkingTreeEnableIfEmptyResult>;
Defined in: packages/rxdb-plugin-working-tree/src/working-tree/async-state.ts:142
enableIfEmpty() 的状态;没有 empty —— not_empty 是结果,不是「没有内容」
enableState
readonly enableState: WorkingTreeCommandState<CommitCapabilityInfo>;
Defined in: packages/rxdb-plugin-working-tree/src/working-tree/async-state.ts:139
enable() 的状态
isEnabledState
readonly isEnabledState: WorkingTreeCommandState<boolean>;
Defined in: packages/rxdb-plugin-working-tree/src/working-tree/async-state.ts:136
isEnabled() 的状态
listCommitsState
readonly listCommitsState: WorkingTreeQueryState<CommitLogPage>;
Defined in: packages/rxdb-plugin-working-tree/src/working-tree/async-state.ts:151
listCommits() 的状态;空即「这个分支还没有历史」
restoreSessionState
readonly restoreSessionState: WorkingTreeQueryState<
| WorkingTreeRestoreSessionInfo
| null>;
Defined in: packages/rxdb-plugin-working-tree/src/working-tree/async-state.ts:166
restoreSession() 的状态;空即「当前分支没有未结束的恢复会话」
restoreState
readonly restoreState: WorkingTreeCommandState<WorkingTreeRestoreResult>;
Defined in: packages/rxdb-plugin-working-tree/src/working-tree/async-state.ts:163
restore() 的状态;没有 empty —— 四个被拒成因与 restoredCount: 0 都是结果
statusState
readonly statusState: WorkingTreeQueryState<WorkingTreeStatus>;
Defined in: packages/rxdb-plugin-working-tree/src/working-tree/async-state.ts:145
status() 的状态;空即「没有未提交变更」
switchBranchState
readonly switchBranchState: WorkingTreeCommandState<void>;
Defined in: packages/rxdb-plugin-working-tree/src/working-tree/async-state.ts:169
switchBranch() 的状态;没有 empty —— 切换只有「切过去了」与「被拒/出错」两种结局