diff options
author | 0neGal <mail@0negal.com> | 2023-11-08 21:28:32 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-11-08 21:28:32 +0100 |
commit | 463a8bc4941666dfea0562a4ded13a94b4a9f361 (patch) | |
tree | 7ea1e2c07f416840aa1e7de26240c4d5f4f04a30 /src/app/main.js | |
parent | 5a4cb4a0d03a3404085133f3c12fe8d3443293e6 (diff) | |
parent | b08dff766c964f942be965dcd66e267eec1944d4 (diff) | |
download | Viper-463a8bc4941666dfea0562a4ded13a94b4a9f361.tar.gz Viper-463a8bc4941666dfea0562a4ded13a94b4a9f361.zip |
Merge branch 'main' into main
Diffstat (limited to 'src/app/main.js')
-rw-r--r-- | src/app/main.js | 53 |
1 files changed, 51 insertions, 2 deletions
diff --git a/src/app/main.js b/src/app/main.js index 44e15ce..3ee95ce 100644 --- a/src/app/main.js +++ b/src/app/main.js @@ -198,6 +198,41 @@ function setButtons(state, enable_gamepath_btns) { } } +// `percent` should be a number between 0 to 100, if it's `false` it'll +// reset it back to nothing instantly, with no animatino +function set_ns_progress(percent) { + // reset button progress + if (percent === false) { + document.querySelector(".contentContainer #nsMain .playBtn") + .style.setProperty("--progress", "unset"); + + return; + } + + percent = parseInt(percent); + + // make sure we're dealing with a number + if (isNaN(percent) || typeof percent !== "number") { + return false; + } + + // limit percent, while this barely has a difference, if you were to + // set a very high number, the CSS would then use a very high + // number, not great. + if (percent > 100) { + percent = 100; + } else if (percent < 0) { + percent = 0; + } + + // invert number to it works in the CSS + percent = 100 - percent; + + // set the CSS progress variable + document.querySelector(".contentContainer #nsMain .playBtn") + .style.setProperty("--progress", percent + "%"); +} + ipcRenderer.on("set-buttons", (event, state) => { setButtons(state); }) @@ -209,16 +244,30 @@ ipcRenderer.on("gamepath-lost", (event, state) => { }) // Frontend part of updating Northstar -ipcRenderer.on("ns-update-event", (event, key) => { +ipcRenderer.on("ns-update-event", (event, options) => { + let key = options.key; + if (typeof options == "string") { + key = options; + } + document.getElementById("update").innerText = `(${lang(key)})`; - console.log(lang(key)); + switch(key) { case "cli.update.uptodate_short": case "cli.update.no_internet": setButtons(true); + set_ns_progress(false); playNsBtn.innerText = lang("gui.launch"); break; default: + if (options.progress) { + set_ns_progress(options.progress); + } + + if (options.btn_text) { + playNsBtn.innerText = options.btn_text; + } + setButtons(false); break; } |