mirror of
https://github.com/Azure/cosmos-explorer.git
synced 2025-05-11 10:54:30 +01:00
switched to iframe for redirects
This commit is contained in:
parent
6b1350ec0d
commit
7daf6a210d
@ -289,18 +289,33 @@ export default class Explorer {
|
|||||||
const container = encodeURIComponent(activeTab?.collection?.id());
|
const container = encodeURIComponent(activeTab?.collection?.id());
|
||||||
const downloadUrl = "https://code.visualstudio.com/download";
|
const downloadUrl = "https://code.visualstudio.com/download";
|
||||||
|
|
||||||
const baseUrl = `vscode://ms-azuretools.vscode-cosmosdb?resourceId=${resourceId}`;
|
const baseUrl = `vscod://ms-azuretools.vscode-cosmosdb?resourceId=${resourceId}`;
|
||||||
const vscodeUrl = activeTab ? `${baseUrl}&database=${database}&container=${container}` : baseUrl;
|
const vscodeUrl = activeTab ? `${baseUrl}&database=${database}&container=${container}` : baseUrl;
|
||||||
const vscodeInsidersUrl = vscodeUrl.replace("vscode://", "vscode-insiders://");
|
const vscodeInsidersUrl = vscodeUrl.replace("vscode://", "vscode-insiders://");
|
||||||
|
|
||||||
const linkOpened =
|
const startTime = Date.now();
|
||||||
(navigator.userAgent.includes("insiders") && window.open(vscodeInsidersUrl)) || window.open(vscodeUrl);
|
let hasRedirected = false;
|
||||||
const vsCodeTimeout = setTimeout(
|
|
||||||
(linkOpened.location = downloadUrl),
|
const iframe = document.createElement("iframe");
|
||||||
10000,
|
iframe.style.display = "none";
|
||||||
logConsoleError("Failed to open Visual Studio Code. Please ensure it is installed and try again."),
|
document.body.appendChild(iframe);
|
||||||
);
|
|
||||||
clearTimeout(vsCodeTimeout);
|
setTimeout(() => {
|
||||||
|
if (!hasRedirected && Date.now() - startTime < 1200) {
|
||||||
|
hasRedirected = true;
|
||||||
|
window.open(downloadUrl, "_blank");
|
||||||
|
}
|
||||||
|
}, 1000);
|
||||||
|
|
||||||
|
try {
|
||||||
|
iframe.src = vscodeInsidersUrl || vscodeUrl;
|
||||||
|
window.location.href = vscodeInsidersUrl || vscodeUrl;
|
||||||
|
} catch (error) {
|
||||||
|
if (!hasRedirected) {
|
||||||
|
hasRedirected = true;
|
||||||
|
window.open(downloadUrl, "_blank");
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public async openCESCVAFeedbackBlade(): Promise<void> {
|
public async openCESCVAFeedbackBlade(): Promise<void> {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user