From 4c9fd2c31a3b893be214845e5ce74e20de1e1a77 Mon Sep 17 00:00:00 2001 From: Anthony Martin <38542602+anthony-c-martin@users.noreply.github.com> Date: Wed, 22 Jan 2025 09:05:07 -0500 Subject: [PATCH] Fix bug with element disconnection --- src/vscode-table/vscode-table.test.ts | 7 +++++++ src/vscode-table/vscode-table.ts | 8 ++++---- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/vscode-table/vscode-table.test.ts b/src/vscode-table/vscode-table.test.ts index 0c65b4d9c..5659533c5 100644 --- a/src/vscode-table/vscode-table.test.ts +++ b/src/vscode-table/vscode-table.test.ts @@ -6,4 +6,11 @@ describe('vscode-table', () => { const el = document.createElement('vscode-table'); expect(el).to.instanceOf(VscodeTable); }); + + it('should not throw when removed from the DOM', () => { + const el = document.createElement('vscode-table'); + document.body.append(el); + + expect(() => el.remove()).not.to.throw(); + }); }); diff --git a/src/vscode-table/vscode-table.ts b/src/vscode-table/vscode-table.ts index 313904f0a..3bd9b88d0 100644 --- a/src/vscode-table/vscode-table.ts +++ b/src/vscode-table/vscode-table.ts @@ -138,8 +138,8 @@ export class VscodeTable extends VscElement { */ private _sashHovers: boolean[] = []; private _columns: string[] = []; - private _componentResizeObserver!: ResizeObserver; - private _headerResizeObserver!: ResizeObserver; + private _componentResizeObserver?: ResizeObserver; + private _headerResizeObserver?: ResizeObserver; private _bodyResizeObserver?: ResizeObserver; private _activeSashElementIndex = -1; private _activeSashCursorOffset = 0; @@ -170,8 +170,8 @@ export class VscodeTable extends VscElement { disconnectedCallback(): void { super.disconnectedCallback(); - this._componentResizeObserver.unobserve(this); - this._componentResizeObserver.disconnect(); + this._componentResizeObserver?.unobserve(this); + this._componentResizeObserver?.disconnect(); this._bodyResizeObserver?.disconnect(); }