From 91065ebc38393e11afee0cbc45b0877b1bc0eebe Mon Sep 17 00:00:00 2001 From: Anthony Dresser Date: Fri, 21 Aug 2020 23:04:29 -0700 Subject: [PATCH] Strict null contrib/webview (#11921) * strict null contrib/webview * fix compile --- .../api/browser/mainThreadModalDialog.ts | 4 +-- .../contrib/webview/browser/webViewDialog.ts | 32 ++++++++++--------- src/tsconfig.vscode.json | 1 - 3 files changed, 19 insertions(+), 18 deletions(-) diff --git a/src/sql/workbench/api/browser/mainThreadModalDialog.ts b/src/sql/workbench/api/browser/mainThreadModalDialog.ts index 94d88e2114..91c9478d07 100644 --- a/src/sql/workbench/api/browser/mainThreadModalDialog.ts +++ b/src/sql/workbench/api/browser/mainThreadModalDialog.ts @@ -48,12 +48,12 @@ export class MainThreadModalDialog implements MainThreadModalDialogShape { $setTitle(handle: number, value: string): void { const dialog = this._dialogs.get(handle); - dialog.headerTitle = value; + dialog.setHeaderTitle(value); } $setHtml(handle: number, value: string): void { const dialog = this._dialogs.get(handle); - dialog.html = value; + dialog.setHtml(value); } $show(handle: number): void { diff --git a/src/sql/workbench/contrib/webview/browser/webViewDialog.ts b/src/sql/workbench/contrib/webview/browser/webViewDialog.ts index 0b6e3b0077..647274daba 100644 --- a/src/sql/workbench/contrib/webview/browser/webViewDialog.ts +++ b/src/sql/workbench/contrib/webview/browser/webViewDialog.ts @@ -12,7 +12,6 @@ import { Event, Emitter } from 'vs/base/common/event'; import { IContextKeyService } from 'vs/platform/contextkey/common/contextkey'; import { IClipboardService } from 'vs/platform/clipboard/common/clipboardService'; import { localize } from 'vs/nls'; -import { toDisposable } from 'vs/base/common/lifecycle'; import * as DOM from 'vs/base/browser/dom'; import { ILogService } from 'vs/platform/log/common/log'; import { IWebviewService, WebviewElement } from 'vs/workbench/contrib/webview/browser/webview'; @@ -24,13 +23,13 @@ import { ILayoutService } from 'vs/platform/layout/browser/layoutService'; export class WebViewDialog extends Modal { - private _body: HTMLElement; - private _okButton: Button; + private _body?: HTMLElement; + private _okButton?: Button; private _okLabel: string; private _closeLabel: string; - private _webview: WebviewElement; - private _html: string; - private _headerTitle: string; + private _webview?: WebviewElement; + private _html?: string; + private _headerTitle?: string; private _onOk = new Emitter(); public onOk: Event = this._onOk.event; @@ -55,11 +54,11 @@ export class WebViewDialog extends Modal { this._closeLabel = localize('webViewDialog.close', "Close"); } - public set html(value: string) { + public setHtml(value: string) { this._html = value; } - public get html(): string { + public get html(): string | undefined { return this._html; } @@ -79,11 +78,11 @@ export class WebViewDialog extends Modal { return this._closeLabel; } - public set headerTitle(value: string) { + public setHeaderTitle(value: string) { this._headerTitle = value; } - public get headerTitle(): string { + public get headerTitle(): string | undefined { return this._headerTitle; } @@ -101,7 +100,6 @@ export class WebViewDialog extends Modal { this._register(this._webview.onMessage(message => this._onMessage.fire(message))); this._register(this._webview); - this._register(toDisposable(() => this._webview = null)); } get onMessage(): Event { @@ -121,7 +119,9 @@ export class WebViewDialog extends Modal { } private updateDialogBody(): void { - this._webview.html = this.html; + if (this.html) { + this._webview!.html = this.html; + } } /* espace key */ @@ -145,13 +145,15 @@ export class WebViewDialog extends Modal { } public sendMessage(message: any): void { - this._webview.postMessage(message); + if (this._webview) { + this._webview.postMessage(message); + } } public open() { - this.title = this.headerTitle; + this.title = this.headerTitle ?? ''; this.updateDialogBody(); this.show(); - this._okButton.focus(); + this._okButton!.focus(); } } diff --git a/src/tsconfig.vscode.json b/src/tsconfig.vscode.json index 906572e919..6ee5e2955b 100644 --- a/src/tsconfig.vscode.json +++ b/src/tsconfig.vscode.json @@ -56,7 +56,6 @@ "./sql/workbench/contrib/scripting/**/*.ts", // 280 errors "./sql/workbench/contrib/tasks/**/*.ts", // 100 errors "./sql/workbench/contrib/views/**/*.ts", // 133 errors - "./sql/workbench/contrib/webview/**/*.ts", // 6 errors "./sql/workbench/contrib/welcome/**/*.ts", // 66 errors "./sql/workbench/services/connection/**/*.ts", // 3402 errors "./sql/workbench/services/dialog/**/*.ts", // 3260 errors