pass if update is downloaded info to show update dialog callback

This commit is contained in:
Abhinav 2022-10-31 17:32:25 +05:30
parent 8e963aa85a
commit e3febd0c48
3 changed files with 19 additions and 13 deletions

View file

@ -10,11 +10,16 @@ export const reloadWindow = () => {
ipcRenderer.send('reload-window'); ipcRenderer.send('reload-window');
}; };
export const registerUpdateEventListener = (showUpdateDialog: () => void) => { export const registerUpdateEventListener = (
showUpdateDialog: (updateInfo: { uploadDownloaded: boolean }) => void
) => {
ipcRenderer.removeAllListeners('show-update-dialog'); ipcRenderer.removeAllListeners('show-update-dialog');
ipcRenderer.on('show-update-dialog', () => { ipcRenderer.on(
showUpdateDialog(); 'show-update-dialog',
}); (_, updateInfo: { uploadDownloaded: boolean }) => {
showUpdateDialog(updateInfo);
}
);
}; };
export const updateAndRestart = () => { export const updateAndRestart = () => {

View file

@ -3,7 +3,6 @@ import { autoUpdater } from 'electron-updater';
import log from 'electron-log'; import log from 'electron-log';
import { setIsAppQuitting, setIsUpdateAvailable } from '../main'; import { setIsAppQuitting, setIsUpdateAvailable } from '../main';
import { buildContextMenu } from '../utils/menu'; import { buildContextMenu } from '../utils/menu';
import { showUpdateDialog } from '../utils/appUpdate';
const LATEST_SUPPORTED_AUTO_UPDATE_VERSION = '1.6.12'; const LATEST_SUPPORTED_AUTO_UPDATE_VERSION = '1.6.12';
@ -14,10 +13,6 @@ class AppUpdater {
autoUpdater.autoDownload = false; autoUpdater.autoDownload = false;
} }
getUpdateDownloaded() {
return this.updateDownloaded;
}
async checkForUpdate(tray: Tray, mainWindow: BrowserWindow) { async checkForUpdate(tray: Tray, mainWindow: BrowserWindow) {
const updateCheckResult = await autoUpdater.checkForUpdatesAndNotify(); const updateCheckResult = await autoUpdater.checkForUpdatesAndNotify();
log.info(updateCheckResult); log.info(updateCheckResult);
@ -26,12 +21,12 @@ class AppUpdater {
LATEST_SUPPORTED_AUTO_UPDATE_VERSION LATEST_SUPPORTED_AUTO_UPDATE_VERSION
) { ) {
this.updateDownloaded = false; this.updateDownloaded = false;
showUpdateDialog(mainWindow); this.showUpdateDialog(mainWindow);
} else { } else {
autoUpdater.downloadUpdate(); autoUpdater.downloadUpdate();
autoUpdater.on('update-downloaded', () => { autoUpdater.on('update-downloaded', () => {
this.updateDownloaded = true; this.updateDownloaded = true;
showUpdateDialog(mainWindow); this.showUpdateDialog(mainWindow);
setIsUpdateAvailable(true); setIsUpdateAvailable(true);
tray.setContextMenu(buildContextMenu(mainWindow)); tray.setContextMenu(buildContextMenu(mainWindow));
}); });
@ -42,6 +37,12 @@ class AppUpdater {
setIsAppQuitting(true); setIsAppQuitting(true);
autoUpdater.quitAndInstall(); autoUpdater.quitAndInstall();
}; };
showUpdateDialog = (mainWindow: BrowserWindow) => {
mainWindow.webContents.send('show-update-dialog', {
updateDownloaded: this.updateDownloaded,
});
};
} }
export default new AppUpdater(); export default new AppUpdater();

View file

@ -12,7 +12,7 @@ import {
import { isUpdateAvailable, setIsAppQuitting } from '../main'; import { isUpdateAvailable, setIsAppQuitting } from '../main';
import autoLauncher from '../services/autoLauncher'; import autoLauncher from '../services/autoLauncher';
import { isPlatformMac } from './main'; import { isPlatformMac } from './main';
import { showUpdateDialog } from '../services/appUpdater'; import appUpdater from '../services/appUpdater';
export function buildContextMenu( export function buildContextMenu(
mainWindow: BrowserWindow, mainWindow: BrowserWindow,
@ -29,7 +29,7 @@ export function buildContextMenu(
? [ ? [
{ {
label: 'Update available', label: 'Update available',
click: () => showUpdateDialog(mainWindow), click: () => appUpdater.showUpdateDialog(mainWindow),
}, },
] ]
: []), : []),