diff --git a/packages/core/src/common/const.ts b/packages/core/src/common/const.ts index 46c68bd3f5..d36b0ddfef 100644 --- a/packages/core/src/common/const.ts +++ b/packages/core/src/common/const.ts @@ -14,16 +14,16 @@ * limitations under the License. */ -export const DOCS_NORMAL_EDITOR_UNIT_ID_KEY = '__defaultDocumentNormalEditorSpecialUnitId_20231006__'; +export const DOCS_NORMAL_EDITOR_UNIT_ID_KEY = '__INTERNAL_EDITOR__DOCS_NORMAL'; -export const DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY = '__defaultDocumentFormulaBarEditorSpecialUnitId_20231012__'; +export const DOCS_FORMULA_BAR_EDITOR_UNIT_ID_KEY = '__INTERNAL_EDITOR__DOCS_FORMULA_BAR'; export const DEFAULT_EMPTY_DOCUMENT_VALUE = '\r\n'; export function createInternalEditorID(id: string) { - return `__internalEditorId__${id}`; + return `__INTERNAL_EDITOR__${id}`; } export function isInternalEditorID(id: string) { - return id.startsWith('__'); + return id.startsWith('__INTERNAL_EDITOR__'); } diff --git a/packages/core/src/services/instance/instance.service.ts b/packages/core/src/services/instance/instance.service.ts index 8613bcb93d..b1486ac5d2 100644 --- a/packages/core/src/services/instance/instance.service.ts +++ b/packages/core/src/services/instance/instance.service.ts @@ -41,7 +41,7 @@ export interface IUniverInstanceService { /** Subscribe to curtain type of units' creation. */ getTypeOfUnitAdded$(type: UnitType): Observable; - /** @interal */ + /** @ignore */ __addUnit(unit: UnitModel): void; /** Omits value when a UnitModel is disposed. */ diff --git a/packages/docs/src/services/doc-skeleton-manager.service.ts b/packages/docs/src/services/doc-skeleton-manager.service.ts index 49db1b833d..951e8026dd 100644 --- a/packages/docs/src/services/doc-skeleton-manager.service.ts +++ b/packages/docs/src/services/doc-skeleton-manager.service.ts @@ -43,13 +43,13 @@ export class DocSkeletonManagerService extends RxDisposable implements IRenderMo ) { super(); - this._update(); + this._init(); this._univerInstanceService.getCurrentTypeOfUnit$(UniverInstanceType.UNIVER_DOC) .pipe(takeUntil(this.dispose$)) .subscribe((documentModel) => { if (documentModel?.getUnitId() === this._context.unitId) { - this._update(); + this._update(documentModel); } }); } @@ -61,8 +61,12 @@ export class DocSkeletonManagerService extends RxDisposable implements IRenderMo this._currentSkeleton$.complete(); } - private _update() { + private _init() { const documentDataModel = this._context.unit; + this._update(documentDataModel); + } + + private _update(documentDataModel: DocumentDataModel) { const unitId = this._context.unitId; // No need to build view model, if data model has no body. @@ -73,6 +77,8 @@ export class DocSkeletonManagerService extends RxDisposable implements IRenderMo // Always need to reset document data model, because cell editor change doc instance every time. if (this._docViewModel && unitId === DOCS_NORMAL_EDITOR_UNIT_ID_KEY) { this._docViewModel.reset(documentDataModel); + + this._context.unit = documentDataModel; } else if (!this._docViewModel) { this._docViewModel = this._buildDocViewModel(documentDataModel); } @@ -86,8 +92,6 @@ export class DocSkeletonManagerService extends RxDisposable implements IRenderMo this._currentSkeletonBefore$.next(skeleton); this._currentSkeleton$.next(skeleton); - - return this.getSkeleton(); } getSkeleton(): DocumentSkeleton {