diff --git a/main.js b/main.js index c0fdab7..52dd5cc 100644 --- a/main.js +++ b/main.js @@ -123,9 +123,30 @@ async function start() { if (release) { const hasUpdate = release.version !== localVersion || (release.sha256 && release.sha256 !== localSha); - if (isFirstRun || hasUpdate) { - debugLog("Update required or first run. Installing remote build..."); + if (isFirstRun) { + debugLog("First run. Installing remote build..."); await installBuild(release); + } else if (hasUpdate) { + debugLog("Update available. Prompting user..."); + sendToTauri('update-available', { current: localVersion, latest: release.version }); + + const tempApp = express(); + let userDecision = null; + tempApp.post('/update/yes', (req, res) => { userDecision = true; res.sendStatus(200); }); + tempApp.post('/update/no', (req, res) => { userDecision = false; res.sendStatus(200); }); + const tempServer = tempApp.listen(4891, '127.0.0.1'); + + while (userDecision === null) { + await new Promise(r => setTimeout(r, 500)); + } + tempServer.close(); + + if (userDecision) { + debugLog("User accepted update."); + await installBuild(release); + } else { + debugLog("User skipped update."); + } } else { debugLog("Already on the latest version."); } diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index 2275d9b..0becd89 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -4222,7 +4222,7 @@ dependencies = [ [[package]] name = "vyla-home" -version = "1.0.0" +version = "1.0.1" dependencies = [ "serde", "serde_json", diff --git a/ui/index.html b/ui/index.html index f5af64a..ed06c4d 100644 --- a/ui/index.html +++ b/ui/index.html @@ -633,6 +633,21 @@ +
A new version is available.
+ +