feat: Add new emoji assets and an UpdateBanner component.
Some checks failed
Build and Release / build-and-release (push) Failing after 3m28s
Some checks failed
Build and Release / build-and-release (push) Failing after 3m28s
This commit is contained in:
61
apps/electron/updater.cjs
Normal file
61
apps/electron/updater.cjs
Normal file
@@ -0,0 +1,61 @@
|
||||
const { autoUpdater } = require('electron-updater');
|
||||
const log = require('electron-log');
|
||||
|
||||
autoUpdater.logger = log;
|
||||
autoUpdater.autoDownload = false;
|
||||
autoUpdater.autoInstallOnAppQuit = true;
|
||||
|
||||
function checkForUpdates(splashWindow) {
|
||||
return new Promise((resolve) => {
|
||||
function sendToSplash(js) {
|
||||
if (splashWindow && !splashWindow.isDestroyed()) {
|
||||
splashWindow.webContents.executeJavaScript(js).catch(() => {});
|
||||
}
|
||||
}
|
||||
|
||||
autoUpdater.on('checking-for-update', () => {
|
||||
sendToSplash('setStatus("Checking for updates...")');
|
||||
});
|
||||
|
||||
autoUpdater.on('update-available', () => {
|
||||
sendToSplash('setStatus("Downloading update...")');
|
||||
autoUpdater.downloadUpdate();
|
||||
});
|
||||
|
||||
autoUpdater.on('download-progress', (progress) => {
|
||||
const percent = Math.round(progress.percent);
|
||||
sendToSplash(`setProgress(${percent})`);
|
||||
sendToSplash(`setStatus("Downloading update... ${percent}%")`);
|
||||
});
|
||||
|
||||
autoUpdater.on('update-downloaded', () => {
|
||||
sendToSplash('setStatus("Installing update...")');
|
||||
sendToSplash('setProgress(100)');
|
||||
setTimeout(() => {
|
||||
autoUpdater.quitAndInstall();
|
||||
}, 1500);
|
||||
});
|
||||
|
||||
autoUpdater.on('update-not-available', () => {
|
||||
sendToSplash('setStatus("Up to date!")');
|
||||
sendToSplash('hideProgress()');
|
||||
setTimeout(() => resolve(false), 1000);
|
||||
});
|
||||
|
||||
autoUpdater.on('error', (err) => {
|
||||
log.error('Auto-updater error:', err);
|
||||
sendToSplash('setStatus("Update check failed")');
|
||||
sendToSplash('hideProgress()');
|
||||
setTimeout(() => resolve(false), 2000);
|
||||
});
|
||||
|
||||
autoUpdater.checkForUpdates().catch((err) => {
|
||||
log.error('checkForUpdates failed:', err);
|
||||
sendToSplash('setStatus("Update check failed")');
|
||||
sendToSplash('hideProgress()');
|
||||
setTimeout(() => resolve(false), 2000);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
module.exports = { checkForUpdates };
|
||||
Reference in New Issue
Block a user