Files
dbgate/packages/web/src/utility/appUpdate.ts
SPRINX0\prochazka a74f6db1e0 messages
2024-09-10 09:11:04 +02:00

53 lines
1.3 KiB
TypeScript

import invalidateCommands from '../commands/invalidateCommands';
import { appUpdaterActive, appUpdateStatus } from '../stores';
import getElectron from './getElectron';
import { showSnackbar } from './snackbar';
export function initializeAppUpdates() {
const electron = getElectron();
if (!electron) {
return;
}
electron.addEventListener('update-available', (e, version) => {
showSnackbar({
message: `Update available: ${version}`,
allowClose: true,
buttons: [
{
label: 'Download',
onClick: () => {
electron.send('downloadUpdate');
},
autoClose: true,
},
],
});
});
electron.addEventListener('app-update-status', (e, value) => {
appUpdateStatus.set(value);
});
electron.addEventListener('downloaded-new-version', (e, version) => {
showSnackbar({
message: `New version ${version} downloaded. Update will be installed after app restart.`,
allowClose: true,
buttons: [
{
label: 'Restart DbGate',
onClick: () => {
electron.send('applyUpdate');
},
autoClose: true,
},
],
});
});
electron.addEventListener('setAppUpdaterActive', (e, error) => {
appUpdaterActive.set(true);
invalidateCommands();
});
}