fixes duplicate list items on welcome #11366 #11578 (#11378)

* fixes duplicate list items on welcome

* fixes duplicate list, and comments on PR

* updates to use clearNode, and removes unnecessary formatter

* awaits maplistentries, calls functions directly
This commit is contained in:
v-bbrady
2020-08-04 10:51:13 -07:00
committed by GitHub
parent 381a32929f
commit 8fce371e3f

View File

@@ -45,7 +45,7 @@ import { IHostService } from 'vs/workbench/services/host/browser/host';
import { IProductService } from 'vs/platform/product/common/productService'; import { IProductService } from 'vs/platform/product/common/productService';
import { KeyCode } from 'vs/base/common/keyCodes'; import { KeyCode } from 'vs/base/common/keyCodes';
import { joinPath } from 'vs/base/common/resources'; import { joinPath } from 'vs/base/common/resources';
import { addStandardDisposableListener, EventHelper } from 'vs/base/browser/dom'; import { addStandardDisposableListener, EventHelper, clearNode } from 'vs/base/browser/dom';
import { GuidedTour } from 'sql/workbench/contrib/welcome/page/browser/gettingStartedTour'; import { GuidedTour } from 'sql/workbench/contrib/welcome/page/browser/gettingStartedTour';
import { IWorkbenchLayoutService } from 'vs/workbench/services/layout/browser/layoutService'; import { IWorkbenchLayoutService } from 'vs/workbench/services/layout/browser/layoutService';
import { ILayoutService } from 'vs/platform/layout/browser/layoutService'; import { ILayoutService } from 'vs/platform/layout/browser/layoutService';
@@ -308,19 +308,13 @@ class WelcomePage extends Disposable {
recent.classList.add('emptyRecent'); recent.classList.add('emptyRecent');
return; return;
} }
const ul = container.querySelector('.recent ul'); const ul = container.querySelector('.recent ul') as HTMLElement;
if (!ul) { if (!ul) {
return; return;
} }
const workspacesToShow = workspaces.slice(0, 5); const workspacesToShow = workspaces.slice(0, 5);
const updateEntries = async () => { clearNode(ul);
while (ul.firstChild) { await this.mapListEntries(workspacesToShow, fileService, container, ul);
ul.removeChild(ul.firstChild);
}
await this.mapListEntries(workspacesToShow, fileService, container);
};
await updateEntries();
this._register(this.labelService.onDidChangeFormatters(updateEntries));
}).then(undefined, onUnexpectedError); }).then(undefined, onUnexpectedError);
this.addExtensionList(container, '.extension-list'); this.addExtensionList(container, '.extension-list');
this.addExtensionPack(container, '.extensionPack'); this.addExtensionPack(container, '.extensionPack');
@@ -685,7 +679,7 @@ class WelcomePage extends Disposable {
return result; return result;
} }
private async mapListEntries(recents: (IRecentWorkspace | IRecentFolder)[], fileService: IFileService, container: HTMLElement): Promise<HTMLElement[]> { private async mapListEntries(recents: (IRecentWorkspace | IRecentFolder)[], fileService: IFileService, container: HTMLElement, ul: HTMLElement): Promise<HTMLElement[]> {
const result: HTMLElement[] = []; const result: HTMLElement[] = [];
for (let i = 0; i < recents.length; i++) { for (let i = 0; i < recents.length; i++) {
const recent = recents[i]; const recent = recents[i];
@@ -705,7 +699,6 @@ class WelcomePage extends Disposable {
} }
return result; return result;
} }
private addExtensionList(container: HTMLElement, listSelector: string): void { private addExtensionList(container: HTMLElement, listSelector: string): void {
const list = container.querySelector(listSelector); const list = container.querySelector(listSelector);
if (list) { if (list) {