diff --git a/src/plus/webviews/graph/graphWebview.ts b/src/plus/webviews/graph/graphWebview.ts index a657937..e7283a3 100644 --- a/src/plus/webviews/graph/graphWebview.ts +++ b/src/plus/webviews/graph/graphWebview.ts @@ -241,13 +241,13 @@ export class GraphWebviewProvider implements WebviewProvider { async canShowWebviewPanel( firstTime: boolean, - options?: { column?: ViewColumn; preserveFocus?: boolean }, + options: { column?: ViewColumn; preserveFocus?: boolean }, ...args: unknown[] ): Promise { this._firstSelection = true; if (!(await ensurePlusFeaturesEnabled())) return false; - if (options?.column != null) { + if (options.column == null) { options.column = ViewColumn.Active; } diff --git a/src/plus/webviews/timeline/timelineWebview.ts b/src/plus/webviews/timeline/timelineWebview.ts index 89676e0..7cc68d0 100644 --- a/src/plus/webviews/timeline/timelineWebview.ts +++ b/src/plus/webviews/timeline/timelineWebview.ts @@ -83,7 +83,7 @@ export class TimelineWebviewProvider implements WebviewProvider { async canShowWebviewPanel( firstTime: boolean, - _options?: { column?: ViewColumn; preserveFocus?: boolean }, + _options: { column?: ViewColumn; preserveFocus?: boolean }, ...args: unknown[] ): Promise { if (!(await ensurePlusFeaturesEnabled())) return false; diff --git a/src/webviews/home/homeWebview.ts b/src/webviews/home/homeWebview.ts index da750b1..21c013d 100644 --- a/src/webviews/home/homeWebview.ts +++ b/src/webviews/home/homeWebview.ts @@ -60,7 +60,7 @@ export class HomeWebviewProvider implements WebviewProvider { async canShowWebviewPanel( _firstTime: boolean, - _options?: { column?: ViewColumn; preserveFocus?: boolean }, + _options: { column?: ViewColumn; preserveFocus?: boolean }, ..._args: unknown[] ): Promise { if (!(await ensurePlusFeaturesEnabled())) return false; diff --git a/src/webviews/webviewController.ts b/src/webviews/webviewController.ts index 6340246..c0c1695 100644 --- a/src/webviews/webviewController.ts +++ b/src/webviews/webviewController.ts @@ -36,14 +36,19 @@ function nextIpcId() { export interface WebviewProvider extends Disposable { canShowWebviewPanel?( firstTime: boolean, - options?: { column?: ViewColumn; preserveFocus?: boolean }, + options: { column?: ViewColumn; preserveFocus?: boolean }, ...args: unknown[] ): boolean | Promise; onShowWebviewPanel?( firstTime: boolean, - options?: { column?: ViewColumn; preserveFocus?: boolean }, + options: { column?: ViewColumn; preserveFocus?: boolean }, ...args: unknown[] ): void | Promise; + canShowWebviewView?( + firstTime: boolean, + options: { column?: ViewColumn; preserveFocus?: boolean }, + ...args: unknown[] + ): boolean | Promise; registerCommands?(): Disposable[]; includeBootstrap?(): SerializedState | Promise; @@ -212,6 +217,10 @@ export class WebviewController implements Dispos } async show(firstTime: boolean, options?: { column?: ViewColumn; preserveFocus?: boolean }, ...args: unknown[]) { + if (options == null) { + options = {}; + } + if (this.isType('tab')) { const result = await this.provider.canShowWebviewPanel?.(firstTime, options, ...args); if (result === false) return;