Fix #115318: Getting started "Tweak My Settings" resets the getting started page
This commit is contained in:
parent
f54b4fe577
commit
4d0a3637f2
|
@ -7,7 +7,7 @@ import 'vs/css!./gettingStarted';
|
||||||
import 'vs/workbench/contrib/welcome/gettingStarted/browser/vs_code_editor_getting_started';
|
import 'vs/workbench/contrib/welcome/gettingStarted/browser/vs_code_editor_getting_started';
|
||||||
import { localize } from 'vs/nls';
|
import { localize } from 'vs/nls';
|
||||||
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
|
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
|
||||||
import { WalkThroughInput } from 'vs/workbench/contrib/welcome/walkThrough/browser/walkThroughInput';
|
import { WalkThroughInput, WalkThroughInputOptions } from 'vs/workbench/contrib/welcome/walkThrough/browser/walkThroughInput';
|
||||||
import { FileAccess, Schemas } from 'vs/base/common/network';
|
import { FileAccess, Schemas } from 'vs/base/common/network';
|
||||||
import { IEditorInputFactory } from 'vs/workbench/common/editor';
|
import { IEditorInputFactory } from 'vs/workbench/common/editor';
|
||||||
import { Disposable, DisposableStore } from 'vs/base/common/lifecycle';
|
import { Disposable, DisposableStore } from 'vs/base/common/lifecycle';
|
||||||
|
@ -26,6 +26,7 @@ import { DomScrollableElement } from 'vs/base/browser/ui/scrollbar/scrollableEle
|
||||||
import { gettingStartedCheckedCodicon, gettingStartedUncheckedCodicon } from 'vs/workbench/contrib/welcome/gettingStarted/browser/gettingStartedIcons';
|
import { gettingStartedCheckedCodicon, gettingStartedUncheckedCodicon } from 'vs/workbench/contrib/welcome/gettingStarted/browser/gettingStartedIcons';
|
||||||
import { ServicesAccessor } from 'vs/editor/browser/editorExtensions';
|
import { ServicesAccessor } from 'vs/editor/browser/editorExtensions';
|
||||||
import { IOpenerService } from 'vs/platform/opener/common/opener';
|
import { IOpenerService } from 'vs/platform/opener/common/opener';
|
||||||
|
import { ITextModelService } from 'vs/editor/common/services/resolverService';
|
||||||
|
|
||||||
export const gettingStartedInputTypeId = 'workbench.editors.gettingStartedInput';
|
export const gettingStartedInputTypeId = 'workbench.editors.gettingStartedInput';
|
||||||
const telemetryFrom = 'gettingStartedPage';
|
const telemetryFrom = 'gettingStartedPage';
|
||||||
|
@ -33,6 +34,15 @@ const telemetryFrom = 'gettingStartedPage';
|
||||||
export class GettingStartedInput extends WalkThroughInput {
|
export class GettingStartedInput extends WalkThroughInput {
|
||||||
static readonly ID = gettingStartedInputTypeId;
|
static readonly ID = gettingStartedInputTypeId;
|
||||||
|
|
||||||
|
constructor(
|
||||||
|
options: WalkThroughInputOptions & { selectedCategory?: string, selectedTask?: string },
|
||||||
|
@ITextModelService textModelResolverService: ITextModelService
|
||||||
|
) {
|
||||||
|
super(options, textModelResolverService);
|
||||||
|
this.selectedCategory = options.selectedCategory;
|
||||||
|
this.selectedTask = options.selectedTask;
|
||||||
|
}
|
||||||
|
|
||||||
selectedCategory: string | undefined;
|
selectedCategory: string | undefined;
|
||||||
selectedTask: string | undefined;
|
selectedTask: string | undefined;
|
||||||
}
|
}
|
||||||
|
@ -53,8 +63,10 @@ export function getGettingStartedInput(accessor: ServicesAccessor, options: { se
|
||||||
name: localize('editorGettingStarted.title', "Getting Started"),
|
name: localize('editorGettingStarted.title', "Getting Started"),
|
||||||
resource,
|
resource,
|
||||||
telemetryFrom,
|
telemetryFrom,
|
||||||
|
selectedCategory: options.selectedCategory,
|
||||||
|
selectedTask: options.selectedTask,
|
||||||
onReady: (container: HTMLElement, disposableStore: DisposableStore) => {
|
onReady: (container: HTMLElement, disposableStore: DisposableStore) => {
|
||||||
const page = instantiationService.createInstance(GettingStartedPage, options, editorInput);
|
const page = instantiationService.createInstance(GettingStartedPage, editorInput);
|
||||||
page.onReady(container);
|
page.onReady(container);
|
||||||
pages.push(page);
|
pages.push(page);
|
||||||
disposableStore.add(page);
|
disposableStore.add(page);
|
||||||
|
@ -79,7 +91,6 @@ export class GettingStartedPage extends Disposable {
|
||||||
private detailImageScrollbar: DomScrollableElement | undefined;
|
private detailImageScrollbar: DomScrollableElement | undefined;
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
initialState: { selectedCategory?: string, selectedTask?: string },
|
|
||||||
editorInput: GettingStartedInput,
|
editorInput: GettingStartedInput,
|
||||||
@ICommandService private readonly commandService: ICommandService,
|
@ICommandService private readonly commandService: ICommandService,
|
||||||
@IProductService private readonly productService: IProductService,
|
@IProductService private readonly productService: IProductService,
|
||||||
|
@ -92,9 +103,6 @@ export class GettingStartedPage extends Disposable {
|
||||||
|
|
||||||
this.editorInput = editorInput;
|
this.editorInput = editorInput;
|
||||||
|
|
||||||
this.editorInput.selectedCategory = initialState.selectedCategory;
|
|
||||||
this.editorInput.selectedTask = initialState.selectedTask;
|
|
||||||
|
|
||||||
this.gettingStartedCategories = this.gettingStartedService.getCategories();
|
this.gettingStartedCategories = this.gettingStartedService.getCategories();
|
||||||
this._register(this.dispatchListeners);
|
this._register(this.dispatchListeners);
|
||||||
this._register(this.gettingStartedService.onDidAddTask(task => console.log('added new task', task, 'that isnt being rendered yet')));
|
this._register(this.gettingStartedService.onDidAddTask(task => console.log('added new task', task, 'that isnt being rendered yet')));
|
||||||
|
|
Loading…
Reference in a new issue