From b67a9f835700394843a6d0f935ec7b6cea31620b Mon Sep 17 00:00:00 2001 From: Wenzhao Hu Date: Fri, 26 Apr 2024 13:28:50 +0800 Subject: [PATCH] fix: fix unit cannot be destroyed or recreate (#2081) * fix: fix unit cannot be destroyed or recreate * fix: playwright duplication --- .github/workflows/playwright.yml | 2 +- .../engine-render/src/render-manager/render-unit.ts | 6 +++--- .../src/controllers/freeze.render-controller.ts | 12 +++++------- .../src/controllers/utils/component-tools.ts | 2 +- 4 files changed, 10 insertions(+), 12 deletions(-) diff --git a/.github/workflows/playwright.yml b/.github/workflows/playwright.yml index 8daf644375..8a6a13538a 100644 --- a/.github/workflows/playwright.yml +++ b/.github/workflows/playwright.yml @@ -33,7 +33,7 @@ jobs: run: pnpm build:e2e - name: Run Playwright Tests - run: pnpm dlx playwright test + run: pnpm exec playwright test - uses: actions/upload-artifact@v3 if: always() diff --git a/packages/engine-render/src/render-manager/render-unit.ts b/packages/engine-render/src/render-manager/render-unit.ts index 26f6d11028..cd10565ac8 100644 --- a/packages/engine-render/src/render-manager/render-unit.ts +++ b/packages/engine-render/src/render-manager/render-unit.ts @@ -48,8 +48,8 @@ export interface IRenderContext extends IRender export class RenderUnit extends Disposable implements IRender { readonly isRenderUnit: true; - readonly unitId: string; - readonly type: UnitType; + get unitId(): string { return this._renderContext.unitId; } + get type(): UnitType { return this._renderContext.type; } private readonly _injector: Injector; private readonly _renderControllers: IRenderController[] = []; @@ -75,7 +75,7 @@ export class RenderUnit extends Disposable implements IRender { this._renderContext = { unit: init.unit, - unitId: this.unitId, + unitId: init.unit.getUnitId(), type: init.unit.type, components: new Map(), mainComponent: null, diff --git a/packages/sheets-ui/src/controllers/freeze.render-controller.ts b/packages/sheets-ui/src/controllers/freeze.render-controller.ts index 26341879a0..0fe1bbf741 100644 --- a/packages/sheets-ui/src/controllers/freeze.render-controller.ts +++ b/packages/sheets-ui/src/controllers/freeze.render-controller.ts @@ -1058,13 +1058,11 @@ export class HeaderFreezeRenderController extends Disposable implements IRenderC private _themeChangeListener() { this._themeChange(this._themeService.getCurrentTheme()); this.disposeWithMe( - toDisposable( - this._themeService.currentTheme$.subscribe((style) => { - this._clearFreeze(); - this._themeChange(style); - this._refreshCurrent(); - }) - ) + this._themeService.currentTheme$.subscribe((style) => { + this._clearFreeze(); + this._themeChange(style); + this._refreshCurrent(); + }) ); } diff --git a/packages/sheets-ui/src/controllers/utils/component-tools.ts b/packages/sheets-ui/src/controllers/utils/component-tools.ts index ab01cc5541..a9cdff35b9 100644 --- a/packages/sheets-ui/src/controllers/utils/component-tools.ts +++ b/packages/sheets-ui/src/controllers/utils/component-tools.ts @@ -72,7 +72,7 @@ export function getSheetObject( engine = renderManagerService.engine; } - if (!components) return null; + if (!components || !mainComponent) return null; const spreadsheet = mainComponent as Spreadsheet; const spreadsheetRowHeader = components.get(SHEET_VIEW_KEY.ROW) as SpreadsheetHeader;