From 19578d967e6ced2e0f765d60345f60afb5849871 Mon Sep 17 00:00:00 2001 From: wadhia-yash Date: Wed, 19 Jun 2024 11:29:26 +0530 Subject: [PATCH] fix(onboarding steps): onboarding steps were getting shown after navigating from marketplace even after completed --- vscode/media/onboarding/onboarding.js | 1 + vscode/src/providers/chat_view_provider.ts | 2 ++ .../src/utilities/setup-manager/setup-manager.ts | 16 ++++++++++++++++ 3 files changed, 19 insertions(+) diff --git a/vscode/media/onboarding/onboarding.js b/vscode/media/onboarding/onboarding.js index 888e469f..bb52cb29 100644 --- a/vscode/media/onboarding/onboarding.js +++ b/vscode/media/onboarding/onboarding.js @@ -1406,6 +1406,7 @@ function allStepsCompleted() { onboardingCompleted = true; stepOneCompleted = true; modelCount = 3; + pendingStepsArr = []; } } function createReferenceChips(references, isCommandAction) { diff --git a/vscode/src/providers/chat_view_provider.ts b/vscode/src/providers/chat_view_provider.ts index 37a6c2e4..1a7e3026 100644 --- a/vscode/src/providers/chat_view_provider.ts +++ b/vscode/src/providers/chat_view_provider.ts @@ -341,6 +341,8 @@ export class FlutterGPTViewProvider implements vscode.WebviewViewProvider { private async _setupManager() { + this.setupManager = SetupManager.getInstance(); + await this.setupManager.updatePendingSteps(); this._view?.webview.postMessage({ type: 'pendingSteps', value: JSON.stringify(this.setupManager.pendingSetupSteps) }); this.setupManager.onDidChangeSetup(event => { diff --git a/vscode/src/utilities/setup-manager/setup-manager.ts b/vscode/src/utilities/setup-manager/setup-manager.ts index 4b2c8397..f5d72f3a 100644 --- a/vscode/src/utilities/setup-manager/setup-manager.ts +++ b/vscode/src/utilities/setup-manager/setup-manager.ts @@ -64,6 +64,22 @@ export class SetupManager { } } + public async updatePendingSteps() { + + if (!this.auth.getGithubAccessToken()) { + this.pendingSetupSteps.push(SetupStep.github); + } + if (!this.auth.getApiKey()) { + this.pendingSetupSteps.push(SetupStep.apiKey); + } + if (this.dartClient && !this.dartClient.executableExists()) { + this.pendingSetupSteps.push(SetupStep.executable); + } + if (this.auth.getGithubAccessToken() && this.auth.getApiKey() && (this.dartClient && this.dartClient.executableExists())) { + this.pendingSetupSteps.length = 0; + } + } + public async setupGithub() { await this.auth.signInWithGithub(this.context!); this._onDidChangeSetup.fire(SetupStep.github);