From ddcc5820e6aff337a9793e5bc26e3565767fccad Mon Sep 17 00:00:00 2001 From: "Justin Kolasa (from Dev Box)" Date: Thu, 24 Apr 2025 16:42:01 -0400 Subject: [PATCH] Redirect to Download VS Code if not opened --- src/Explorer/Explorer.tsx | 37 ++++--------------------------------- 1 file changed, 4 insertions(+), 33 deletions(-) diff --git a/src/Explorer/Explorer.tsx b/src/Explorer/Explorer.tsx index 8e79ca2bb..200020bb5 100644 --- a/src/Explorer/Explorer.tsx +++ b/src/Explorer/Explorer.tsx @@ -283,46 +283,17 @@ export default class Explorer { } public openInVsCode(): void { - const startTime = TelemetryProcessor.traceStart(Action.OpenVSCode); - const clearInProgressMessage = logConsoleProgress("Opening Visual Studio Code"); - const activeTab = useTabs.getState().activeTab; - const baseUrl = `vscode://ms-azuretools.vscode-cosmosdb?resourceId=${userContext.databaseAccount.id}`; const vscodeUrl = activeTab ? `${baseUrl}&database=${activeTab.collection.databaseId}&container=${activeTab.collection?.id()}` : baseUrl; const vscodeInsidersUrl = vscodeUrl.replace("vscode://", "vscode-insiders://"); - try { - const linkOpened = - (navigator.userAgent.includes("Insiders") && window.open(vscodeInsidersUrl)) || window.open(vscodeUrl); - - if (!linkOpened.closed || typeof linkOpened.closed === "undefined") { - linkOpened.close(); - useDialog.getState().openDialog({ - isModal: true, - title: "Visual Studio Code Not Installed", - subText: "It appears Visual Studio Code is not installed on this device. Would you like to download it?", - primaryButtonText: "Download", - secondaryButtonText: "Cancel", - onPrimaryButtonClick: () => { - window.open("https://code.visualstudio.com/download", "_blank"); - useDialog.getState().closeDialog(); - }, - onSecondaryButtonClick: () => { - useDialog.getState().closeDialog(); - }, - }); - } - - TelemetryProcessor.traceSuccess(Action.OpenVSCode, {}, startTime); - } catch (error) { - logConsoleError(`Failed to open Visual Studio Code. ${getErrorMessage(error)}`); - TelemetryProcessor.traceFailure(Action.OpenVSCode, {}, startTime); - } finally { - clearInProgressMessage(); - } + const linkOpened = + (navigator.userAgent.includes("insiders") && window.open(vscodeInsidersUrl)) || window.open(vscodeUrl); + const myTimeout = setTimeout((linkOpened.location = "https://code.visualstudio.com/download"), 500); + clearTimeout(myTimeout); } public async openCESCVAFeedbackBlade(): Promise {