From 660d99754a4d5fbeee13a5baee1a24d0047ba399 Mon Sep 17 00:00:00 2001 From: mathuo <6710312+mathuo@users.noreply.github.com> Date: Sun, 26 Feb 2023 21:50:15 +0800 Subject: [PATCH] feat: dockview title to be optional --- .../src/dockview/components/tab/defaultTab.ts | 8 ++++++-- packages/dockview/src/dockview/dockviewPanel.ts | 13 ++++--------- packages/dockview/src/groupview/types.ts | 4 ++-- 3 files changed, 12 insertions(+), 13 deletions(-) diff --git a/packages/dockview/src/dockview/components/tab/defaultTab.ts b/packages/dockview/src/dockview/components/tab/defaultTab.ts index 651b12ea7..dfbce0e2f 100644 --- a/packages/dockview/src/dockview/components/tab/defaultTab.ts +++ b/packages/dockview/src/dockview/components/tab/defaultTab.ts @@ -79,7 +79,8 @@ export class DefaultTab extends CompositeDisposable implements ITabRenderer { public init(params: GroupPanelPartInitParameters) { this.params = params; - this._content.textContent = params.title; + this._content.textContent = + typeof params.title === 'string' ? params.title : this.id; addDisposableListener(this.action, 'click', (ev) => { ev.preventDefault(); // @@ -106,7 +107,10 @@ export class DefaultTab extends CompositeDisposable implements ITabRenderer { private render() { if (this._content.textContent !== this.params.title) { - this._content.textContent = this.params.title; + this._content.textContent = + typeof this.params.title === 'string' + ? this.params.title + : this.id; } } } diff --git a/packages/dockview/src/dockview/dockviewPanel.ts b/packages/dockview/src/dockview/dockviewPanel.ts index 5255bb851..8378a1a6a 100644 --- a/packages/dockview/src/dockview/dockviewPanel.ts +++ b/packages/dockview/src/dockview/dockviewPanel.ts @@ -9,11 +9,7 @@ import { IGroupPanelInitParameters, } from '../groupview/types'; import { GroupPanel } from '../groupview/groupviewPanel'; -import { - CompositeDisposable, - IDisposable, - MutableDisposable, -} from '../lifecycle'; +import { CompositeDisposable, IDisposable } from '../lifecycle'; import { IPanel, Parameters } from '../panel/types'; import { IGroupPanelView } from './defaultGroupPanelView'; import { DockviewComponent } from './dockviewComponent'; @@ -34,8 +30,6 @@ export class DockviewPanel extends CompositeDisposable implements IDockviewPanel { - private readonly mutableDisposable = new MutableDisposable(); - readonly api: DockviewPanelApiImpl; private _group: GroupPanel; private _params?: Parameters; @@ -88,7 +82,9 @@ export class DockviewPanel this._params = params.params; this._view = params.view; - this.setTitle(params.title); + if (typeof params.title === 'string') { + this.setTitle(params.title); + } this.view?.init({ ...params, @@ -183,7 +179,6 @@ export class DockviewPanel public dispose(): void { this.api.dispose(); - this.mutableDisposable.dispose(); this.view?.dispose(); } diff --git a/packages/dockview/src/groupview/types.ts b/packages/dockview/src/groupview/types.ts index 4cb242101..abd75e80c 100644 --- a/packages/dockview/src/groupview/types.ts +++ b/packages/dockview/src/groupview/types.ts @@ -19,7 +19,7 @@ export interface IRenderable { } export interface HeaderPartInitParameters { - title: string; + title?: string; } export interface GroupPanelPartInitParameters @@ -88,6 +88,6 @@ export type GroupPanelUpdateEvent = PanelUpdateEvent<{ export interface GroupviewPanelState { id: string; view?: any; - title: string; + title?: string; params?: { [key: string]: any }; }