From 86adb28f418b3c056395737aab0a51582ba167be Mon Sep 17 00:00:00 2001 From: alwaysmesmerizingyou Date: Sat, 22 Aug 2026 14:25:04 -0700 Subject: [PATCH] fixed updater not showing --- main.js | 14 ++++++++++++-- package.json | 2 +- src-tauri/Cargo.lock | 2 +- src-tauri/Cargo.toml | 2 +- src-tauri/tauri.conf.json | 2 +- ui/index.html | 34 ++++++++++++++++++++++++++++------ 6 files changed, 44 insertions(+), 12 deletions(-) diff --git a/main.js b/main.js index 52dd5cc..626c24a 100644 --- a/main.js +++ b/main.js @@ -128,14 +128,24 @@ async function start() { 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.use((req, res, next) => { + res.header('Access-Control-Allow-Origin', '*'); + res.header('Access-Control-Allow-Methods', 'GET,POST,OPTIONS'); + res.header('Access-Control-Allow-Headers', '*'); + if (req.method === 'OPTIONS') return res.sendStatus(200); + next(); + }); + tempApp.get('/update/info', (req, res) => { + res.json({ available: true, current: localVersion, latest: release.version }); + }); 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'); + sendToTauri('update-available', { current: localVersion, latest: release.version }); + while (userDecision === null) { await new Promise(r => setTimeout(r, 500)); } diff --git a/package.json b/package.json index 43a2c9d..9e98be5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "vyla-home", - "version": "1.0.3", + "version": "1.0.4", "description": "Vyla Home Desktop App Launcher", "main": "main.js", "scripts": { diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index 5794e6d..b2e34e5 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -4222,7 +4222,7 @@ dependencies = [ [[package]] name = "vyla-home" -version = "1.0.3" +version = "1.0.4" dependencies = [ "serde", "serde_json", diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index caed5b7..1ba26a9 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "vyla-home" -version = "1.0.3" +version = "1.0.4" description = "Vyla Home Desktop App Launcher" edition = "2021" diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json index 7f199b7..3f5dcc9 100644 --- a/src-tauri/tauri.conf.json +++ b/src-tauri/tauri.conf.json @@ -1,7 +1,7 @@ { "$schema": "https://raw.githubusercontent.com/tauri-apps/tauri/dev/tooling/cli/schema.json", "productName": "Vyla Home", - "version": "1.0.3", + "version": "1.0.4", "identifier": "com.vyla.home", "build": { "frontendDist": "../ui" diff --git a/ui/index.html b/ui/index.html index ed06c4d..b94cbbf 100644 --- a/ui/index.html +++ b/ui/index.html @@ -681,21 +681,27 @@ viewElement.classList.add('active'); } - if (window.__TAURI__ && window.__TAURI__.event) { - window.__TAURI__.event.listen('update-available', (e) => { + function setupTauriListeners() { + const eventApi = window.__TAURI__?.event || window.__TAURI_INTERNALS__; + if (!eventApi || typeof eventApi.listen !== 'function') { + setTimeout(setupTauriListeners, 200); + return; + } + + eventApi.listen('update-available', (e) => { if (e.payload) { document.getElementById('update-msg').textContent = `Version ${e.payload.latest} is available (Current: ${e.payload.current}).`; showView(viewUpdate); } }); - window.__TAURI__.event.listen('status', (e) => { + eventApi.listen('status', (e) => { if (e.payload && e.payload.message) { statusMsg.textContent = e.payload.message; } }); - window.__TAURI__.event.listen('download-progress', (e) => { + eventApi.listen('download-progress', (e) => { if (e.payload) { statusMsg.textContent = `Downloading update: ${e.payload.percent}%`; progressWrap.style.display = 'block'; @@ -703,27 +709,43 @@ } }); - window.__TAURI__.event.listen('error', (e) => { + eventApi.listen('error', (e) => { if (e.payload && e.payload.message) { errorMsg.textContent = e.payload.message; showView(viewError); } }); - window.__TAURI__.event.listen('ready', (e) => { + eventApi.listen('ready', (e) => { if (e.payload && e.payload.url) { window.location.href = e.payload.url; } }); } + setupTauriListeners(); + + function checkUpdateApi() { + fetch('http://127.0.0.1:4891/update/info') + .then(r => r.json()) + .then(data => { + if (data && data.available) { + document.getElementById('update-msg').textContent = `Version ${data.latest} is available (Current: ${data.current}).`; + showView(viewUpdate); + } + }) + .catch(() => { }); + } + const updateInterval = setInterval(checkUpdateApi, 500); function installUpdate() { + clearInterval(updateInterval); fetch('http://127.0.0.1:4891/update/yes', { method: 'POST' }).catch(() => { }); statusMsg.textContent = 'Starting update...'; showView(viewLoader); } function skipUpdate() { + clearInterval(updateInterval); fetch('http://127.0.0.1:4891/update/no', { method: 'POST' }).catch(() => { }); statusMsg.textContent = 'Continuing to app...'; showView(viewLoader);