feat: cancel download

This commit is contained in:
Adnan Lahrech 2023-04-15 19:18:19 +01:00
parent 1b5b326aa6
commit 9f48157a49
2 changed files with 10 additions and 2 deletions

View File

@ -2,9 +2,12 @@ import { app, ipcMain } from 'electron'
import {
type ProgressInfo,
type UpdateDownloadedEvent,
CancellationToken,
autoUpdater
} from 'electron-updater'
const cancellationToken = new CancellationToken()
export function update(win: Electron.BrowserWindow) {
// When set to false, the update download will be triggered through the API
@ -56,6 +59,11 @@ export function update(win: Electron.BrowserWindow) {
)
})
// Cancel downloading
ipcMain.handle('cancel-download', () => {
cancellationToken.cancel()
})
// Install now
ipcMain.handle('quit-and-install', () => {
autoUpdater.quitAndInstall(false, true)
@ -69,5 +77,5 @@ function startDownload(
autoUpdater.on('download-progress', info => callback(null, info))
autoUpdater.on('error', error => callback(error, null))
autoUpdater.on('update-downloaded', complete)
autoUpdater.downloadUpdate()
autoUpdater.downloadUpdate(cancellationToken)
}

View File

@ -18,7 +18,7 @@ const Update = () => {
onCancel?: () => void
onOk?: () => void
}>({
onCancel: () => setModalOpen(false),
onCancel: () => ipcRenderer.invoke('cancel-download').then(() => setModalOpen(false)),
onOk: () => ipcRenderer.invoke('start-download'),
})