diff --git a/src/vs/workbench/contrib/welcome/gettingStarted/browser/gettingStarted.ts b/src/vs/workbench/contrib/welcome/gettingStarted/browser/gettingStarted.ts index 3500f0d83cb..c60d26458a3 100644 --- a/src/vs/workbench/contrib/welcome/gettingStarted/browser/gettingStarted.ts +++ b/src/vs/workbench/contrib/welcome/gettingStarted/browser/gettingStarted.ts @@ -12,7 +12,7 @@ import { assertIsDefined } from 'vs/base/common/types'; import { $, addDisposableListener, append, clearNode, Dimension, reset } from 'vs/base/browser/dom'; import { ICommandService } from 'vs/platform/commands/common/commands'; import { IProductService } from 'vs/platform/product/common/productService'; -import { hiddenEntriesConfigurationKey, IResolvedWalkthrough, IWalkthroughsService } from 'vs/workbench/contrib/welcome/gettingStarted/browser/gettingStartedService'; +import { hiddenEntriesConfigurationKey, IResolvedWalkthrough, IResolvedWalkthroughStep, IWalkthroughsService } from 'vs/workbench/contrib/welcome/gettingStarted/browser/gettingStartedService'; import { IThemeService, registerThemingParticipant, ThemeIcon } from 'vs/platform/theme/common/themeService'; import { welcomePageBackground, welcomePageProgressBackground, welcomePageProgressForeground, welcomePageTileBackground, welcomePageTileHoverBackground, welcomePageTileShadow } from 'vs/workbench/contrib/welcome/gettingStarted/browser/gettingStartedColors'; import { activeContrastBorder, buttonBackground, buttonForeground, buttonHoverBackground, contrastBorder, descriptionForeground, focusBorder, foreground, textLinkActiveForeground, textLinkForeground } from 'vs/platform/theme/common/colorRegistry'; @@ -655,7 +655,12 @@ export class GettingStartedPage extends EditorPane { if (id && this.editorInput.selectedStep === id && !forceRebuild) { return; } if (id) { - const stepElement = assertIsDefined(this.container.querySelector(`[data-step-id="${id}"]`)); + let stepElement = this.container.querySelector(`[data-step-id="${id}"]`); + if (!stepElement) { + // Selected an element that is not in-context, just fallback to whatever. + stepElement = assertIsDefined(this.container.querySelector(`[data-step-id]`)); + id = assertIsDefined(stepElement.getAttribute('data-step-id')); + } stepElement.parentElement?.querySelectorAll('.expanded').forEach(node => { if (node.getAttribute('data-step-id') !== id) { node.classList.remove('expanded'); @@ -703,7 +708,7 @@ export class GettingStartedPage extends EditorPane { - +