From 9ae98bdcd8763058c49fc1c5540383c20b82a54e Mon Sep 17 00:00:00 2001 From: David Thompson Date: Mon, 5 Feb 2024 16:01:12 -0500 Subject: [PATCH] Do not call getAllComponents() in activate Part of #3850 Signed-off-by: David Thompson --- src/extension.ts | 1 - src/webview/create-component/createComponentLoader.ts | 6 +++++- src/webview/devfile-registry/registryViewLoader.ts | 4 ++++ 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/extension.ts b/src/extension.ts index a574c8722..6bac3b26e 100644 --- a/src/extension.ts +++ b/src/extension.ts @@ -204,7 +204,6 @@ export async function activate(extensionContext: ExtensionContext): Promise { + if (ComponentTypesView.instance.getCompDescriptions().size === 0) { + await Progress.execFunctionWithProgress('Loading available component types...', () => ComponentTypesView.instance.getAllComponents()) + } if (CreateComponentLoader.panel) { CreateComponentLoader.panel.reveal(); return; diff --git a/src/webview/devfile-registry/registryViewLoader.ts b/src/webview/devfile-registry/registryViewLoader.ts index 6d284fec4..9fdffc828 100644 --- a/src/webview/devfile-registry/registryViewLoader.ts +++ b/src/webview/devfile-registry/registryViewLoader.ts @@ -10,6 +10,7 @@ import { Odo } from '../../odo/odoWrapper'; import { ComponentTypesView } from '../../registriesView'; import sendTelemetry from '../../telemetry'; import { ExtensionID } from '../../util/constants'; +import { Progress } from '../../util/progress'; import { getInitialWorkspaceFolder, selectWorkspaceFolder } from '../../util/workspace'; import { vsCommand } from '../../vscommand'; import { getDevfileCapabilities, getDevfileRegistries, getDevfileTags, isValidProjectFolder, validateName, validatePortNumber } from '../common-ext/createComponentHelpers'; @@ -155,6 +156,9 @@ export default class RegistryViewLoader { } static async loadView(title: string, url?: string): Promise { + if (ComponentTypesView.instance.getCompDescriptions().size === 0) { + await Progress.execFunctionWithProgress('Loading available component types...', () => ComponentTypesView.instance.getAllComponents()) + } const localResourceRoot = vscode.Uri.file(path.join(RegistryViewLoader.extensionPath, 'out', 'devfileRegistryViewer')); if (panel) { if (RegistryViewLoader.url !== url) {