From c892f9cfe0923cd9aace5d0e4f5b9cb0022a86fd Mon Sep 17 00:00:00 2001 From: Matt Bierner Date: Thu, 7 Feb 2019 14:08:57 -0800 Subject: [PATCH] Strict null work --- .../base/parts/quickopen/browser/quickOpenViewer.ts | 2 +- src/vs/base/parts/tree/browser/treeView.ts | 4 ++-- .../extensions/electron-browser/extensionsList.ts | 2 +- .../electron-browser/extensionsWidgets.ts | 13 ++++++++++--- 4 files changed, 14 insertions(+), 7 deletions(-) diff --git a/src/vs/base/parts/quickopen/browser/quickOpenViewer.ts b/src/vs/base/parts/quickopen/browser/quickOpenViewer.ts index a6c8e390574..a87b30dbadc 100644 --- a/src/vs/base/parts/quickopen/browser/quickOpenViewer.ts +++ b/src/vs/base/parts/quickopen/browser/quickOpenViewer.ts @@ -33,7 +33,7 @@ export class DataSource implements IDataSource { hasChildren(tree: ITree, element: any): boolean { const model = this.modelProvider.getModel(); - return model && model === element && model.entries.length > 0; + return !!(model && model === element && model.entries.length > 0); } getChildren(tree: ITree, element: any): Promise { diff --git a/src/vs/base/parts/tree/browser/treeView.ts b/src/vs/base/parts/tree/browser/treeView.ts index fa0a7dcbe2b..5e7e31b7d3e 100644 --- a/src/vs/base/parts/tree/browser/treeView.ts +++ b/src/vs/base/parts/tree/browser/treeView.ts @@ -1286,8 +1286,8 @@ export class TreeView extends HeightMap { element = this.model!.getInput(); position = DOM.getDomNodePagePosition(this.inputItem.element); } else { - let id = this.context.dataSource.getId(this.context.tree, element); - let viewItem = this.items[id]; + const id = this.context.dataSource.getId(this.context.tree, element); + const viewItem = this.items[id!]; position = DOM.getDomNodePagePosition(viewItem.element); } diff --git a/src/vs/workbench/contrib/extensions/electron-browser/extensionsList.ts b/src/vs/workbench/contrib/extensions/electron-browser/extensionsList.ts index 75a817b8b41..60942cd50a7 100644 --- a/src/vs/workbench/contrib/extensions/electron-browser/extensionsList.ts +++ b/src/vs/workbench/contrib/extensions/electron-browser/extensionsList.ts @@ -34,7 +34,7 @@ export interface ITemplateData { ratings: HTMLElement; author: HTMLElement; description: HTMLElement; - extension: IExtension; + extension: IExtension | null; disposables: IDisposable[]; extensionDisposables: IDisposable[]; actionbar: ActionBar; diff --git a/src/vs/workbench/contrib/extensions/electron-browser/extensionsWidgets.ts b/src/vs/workbench/contrib/extensions/electron-browser/extensionsWidgets.ts index b5f3b7d5af5..8cf034ebdb5 100644 --- a/src/vs/workbench/contrib/extensions/electron-browser/extensionsWidgets.ts +++ b/src/vs/workbench/contrib/extensions/electron-browser/extensionsWidgets.ts @@ -142,7 +142,7 @@ export class RatingsWidget extends ExtensionWidget { export class RecommendationWidget extends ExtensionWidget { - private element: HTMLElement; + private element?: HTMLElement; private disposables: IDisposable[] = []; constructor( @@ -161,7 +161,7 @@ export class RecommendationWidget extends ExtensionWidget { if (this.element) { this.parent.removeChild(this.element); } - this.element = null; + this.element = undefined; this.disposables = dispose(this.disposables); } @@ -232,6 +232,9 @@ export class RemoteBadgeWidget extends ExtensionWidget { append(this.element, $('span.octicon.octicon-file-symlink-directory')); const applyBadgeStyle = () => { + if (!this.element) { + return; + } const bgColor = this.themeService.getTheme().getColor(STATUS_BAR_HOST_NAME_BACKGROUND); const fgColor = this.workspaceContextService.getWorkbenchState() === WorkbenchState.EMPTY ? this.themeService.getTheme().getColor(STATUS_BAR_NO_FOLDER_FOREGROUND) : this.themeService.getTheme().getColor(STATUS_BAR_FOREGROUND); this.element.style.backgroundColor = bgColor ? bgColor.toString() : ''; @@ -241,7 +244,11 @@ export class RemoteBadgeWidget extends ExtensionWidget { this.themeService.onThemeChange(applyBadgeStyle, this, this.disposables); this.workspaceContextService.onDidChangeWorkbenchState(applyBadgeStyle, this, this.disposables); - const updateTitle = () => this.element.title = localize('remote extension title', "Extension in {0}", this.labelService.getHostLabel()); + const updateTitle = () => { + if (this.element) { + this.element.title = localize('remote extension title', "Extension in {0}", this.labelService.getHostLabel()); + } + }; this.labelService.onDidChangeFormatters(() => updateTitle(), this, this.disposables); updateTitle(); } -- GitLab