From 4f02d3ad1f147eb43c21e5c00c86c85e1ec2299d Mon Sep 17 00:00:00 2001 From: Yifeng Wang Date: Thu, 5 Dec 2024 13:20:00 +0800 Subject: [PATCH] fix(edgeless): memory leak in edgeless widgets (#8862) --- .../edgeless/components/toolbar/present/frame-order-menu.ts | 5 +++++ .../components/toolbar/present/navigator-setting-button.ts | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/packages/blocks/src/root-block/edgeless/components/toolbar/present/frame-order-menu.ts b/packages/blocks/src/root-block/edgeless/components/toolbar/present/frame-order-menu.ts index d205b6c3dd11..1d6bfefaffd3 100644 --- a/packages/blocks/src/root-block/edgeless/components/toolbar/present/frame-order-menu.ts +++ b/packages/blocks/src/root-block/edgeless/components/toolbar/present/frame-order-menu.ts @@ -184,6 +184,11 @@ export class EdgelessFrameOrderMenu extends WithDisposable(LitElement) { }); } + override disconnectedCallback(): void { + super.disconnectedCallback(); + this._disposables.dispose(); + } + override firstUpdated() { this._bindEvent(); } diff --git a/packages/blocks/src/root-block/edgeless/components/toolbar/present/navigator-setting-button.ts b/packages/blocks/src/root-block/edgeless/components/toolbar/present/navigator-setting-button.ts index 2e8eb6dd732c..d4a997e564f9 100644 --- a/packages/blocks/src/root-block/edgeless/components/toolbar/present/navigator-setting-button.ts +++ b/packages/blocks/src/root-block/edgeless/components/toolbar/present/navigator-setting-button.ts @@ -92,6 +92,11 @@ export class EdgelessNavigatorSettingButton extends WithDisposable(LitElement) { this._tryRestoreSettings(); } + override disconnectedCallback(): void { + this._navigatorSettingPopper?.dispose(); + this._navigatorSettingPopper = null; + } + override firstUpdated() { this._navigatorSettingPopper = createButtonPopper( this._navigatorSettingButton,