Redirect to Download VS Code if not opened

This commit is contained in:
Justin Kolasa (from Dev Box) 2025-04-24 16:42:01 -04:00
parent fc7ce9e71f
commit ddcc5820e6

View File

@ -283,46 +283,17 @@ export default class Explorer {
} }
public openInVsCode(): void { public openInVsCode(): void {
const startTime = TelemetryProcessor.traceStart(Action.OpenVSCode);
const clearInProgressMessage = logConsoleProgress("Opening Visual Studio Code");
const activeTab = useTabs.getState().activeTab; const activeTab = useTabs.getState().activeTab;
const baseUrl = `vscode://ms-azuretools.vscode-cosmosdb?resourceId=${userContext.databaseAccount.id}`; const baseUrl = `vscode://ms-azuretools.vscode-cosmosdb?resourceId=${userContext.databaseAccount.id}`;
const vscodeUrl = activeTab const vscodeUrl = activeTab
? `${baseUrl}&database=${activeTab.collection.databaseId}&container=${activeTab.collection?.id()}` ? `${baseUrl}&database=${activeTab.collection.databaseId}&container=${activeTab.collection?.id()}`
: baseUrl; : baseUrl;
const vscodeInsidersUrl = vscodeUrl.replace("vscode://", "vscode-insiders://"); const vscodeInsidersUrl = vscodeUrl.replace("vscode://", "vscode-insiders://");
try { const linkOpened =
const linkOpened = (navigator.userAgent.includes("insiders") && window.open(vscodeInsidersUrl)) || window.open(vscodeUrl);
(navigator.userAgent.includes("Insiders") && window.open(vscodeInsidersUrl)) || window.open(vscodeUrl); const myTimeout = setTimeout((linkOpened.location = "https://code.visualstudio.com/download"), 500);
clearTimeout(myTimeout);
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();
}
} }
public async openCESCVAFeedbackBlade(): Promise<void> { public async openCESCVAFeedbackBlade(): Promise<void> {