Detect and offer platform-specific bridge download

This commit is contained in:
hensm
2019-03-14 15:17:22 +00:00
parent 410d6a267b
commit c8df4f985c
4 changed files with 144 additions and 77 deletions

View File

@@ -1,5 +1,47 @@
"use strict";
const downloadAppBtn = document.querySelector(".download__app");
const downloadAppOther = document.querySelector(".download__app-other");
const downloadAppOtherSummary = downloadAppOther.querySelector(":scope > summary");
// Ext download button
const downloadExtBtn = document.querySelector(".download__ext");
// App download buttons
const appListWinBtn = document.querySelector(".app-list__win");
const appListMacBtn = document.querySelector(".app-list__mac");
const appListDebBtn = document.querySelector(".app-list__deb");
const appListRpmBtn = document.querySelector(".app-list__rpm");
let platform;
switch (navigator.platform) {
case "Win32":
case "Win64":
platform = "win";
downloadAppBtn.textContent = "Windows Bridge";
appListWinBtn.hidden = true;
break;
case "MacIntel":
platform = "mac";
downloadAppBtn.textContent = "macOS Bridge";
appListMacBtn.hidden = true;
break;
default:
/**
* Hide default download button and display other downloads
* without details summary.
*/
downloadAppBtn.remove();
downloadAppOther.open = true;
downloadAppOtherSummary.hidden = true;
}
const ENDPOINT_URL = "https://api.github.com/repos/hensm/fx_cast/releases/latest";
fetch(ENDPOINT_URL)
@@ -11,16 +53,6 @@ function onResponse (res) {
for (const asset of res.assets) {
const { browser_download_url } = asset;
// Ext download button
const downloadExtBtn = document.querySelector(".download__ext");
// App download buttons
const appListWinBtn = document.querySelector(".app-list__win");
const appListMacBtn = document.querySelector(".app-list__mac");
const appListDebBtn = document.querySelector(".app-list__deb");
const appListRpmBtn = document.querySelector(".app-list__rpm");
switch (asset.name.match(/.*\.(.*)$/).pop()) {
case "xpi":
downloadExtBtn.href = browser_download_url;
@@ -50,6 +82,24 @@ function onResponse (res) {
break;
}
}
if (platform) {
switch (platform) {
case "win":
downloadAppBtn.href = appListWinBtn.href;
break;
case "mac":
downloadAppBtn.href = appListMacBtn.href;
break;
default: {
return;
}
}
downloadAppBtn.removeAttribute("disabled");
downloadAppBtn.removeAttribute("title");
}
}
function onError (err) {