mirror of
https://github.com/hensm/fx_cast.git
synced 2026-06-10 17:49:58 +00:00
Detect and offer platform-specific bridge download
This commit is contained in:
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user