From 547d462243b26b3c1ee1dcf040f7d63081a1a4af Mon Sep 17 00:00:00 2001 From: kytwb Date: Sat, 18 Dec 2021 02:16:55 +0100 Subject: Better error handling for autoUpdater --- src/components/settings/settings/EditSettingsForm.js | 12 +++++++++++- src/containers/settings/EditSettingsScreen.js | 1 + src/electron/ipc-api/autoUpdate.ts | 7 +++---- src/stores/AppStore.js | 1 + 4 files changed, 16 insertions(+), 5 deletions(-) diff --git a/src/components/settings/settings/EditSettingsForm.js b/src/components/settings/settings/EditSettingsForm.js index 1757ac297..eab65f5e5 100644 --- a/src/components/settings/settings/EditSettingsForm.js +++ b/src/components/settings/settings/EditSettingsForm.js @@ -12,6 +12,7 @@ import Toggle from '../../ui/Toggle'; import ToggleRaw from '../../ui/ToggleRaw'; import Select from '../../ui/Select'; import Input from '../../ui/Input'; +import Infobox from '../../ui/Infobox'; import { DEFAULT_APP_SETTINGS, @@ -193,6 +194,7 @@ class EditSettingsForm extends Component { isUpdateAvailable: PropTypes.bool.isRequired, noUpdateAvailable: PropTypes.bool.isRequired, updateIsReadyToInstall: PropTypes.bool.isRequired, + updateFailed: PropTypes.bool.isRequired, isClearingAllCache: PropTypes.bool.isRequired, onClearAllCache: PropTypes.func.isRequired, getCacheSize: PropTypes.func.isRequired, @@ -242,6 +244,7 @@ class EditSettingsForm extends Component { isUpdateAvailable, noUpdateAvailable, updateIsReadyToInstall, + updateFailed, isClearingAllCache, onClearAllCache, getCacheSize, @@ -800,7 +803,9 @@ class EditSettingsForm extends Component {
)} - {intl.formatMessage(messages.currentVersion)} {ferdiVersion} +

+ {intl.formatMessage(messages.currentVersion)} {ferdiVersion} +

{noUpdateAvailable && ( <>
@@ -808,6 +813,11 @@ class EditSettingsForm extends Component { {intl.formatMessage(messages.updateStatusUpToDate)} )} + {updateFailed && ( + + An error occured (check the console for more details) + + )}

Ferdi is based on{' '} diff --git a/src/containers/settings/EditSettingsScreen.js b/src/containers/settings/EditSettingsScreen.js index ddf6876b9..3d215a0d7 100644 --- a/src/containers/settings/EditSettingsScreen.js +++ b/src/containers/settings/EditSettingsScreen.js @@ -727,6 +727,7 @@ class EditSettingsScreen extends Component { isUpdateAvailable={updateStatus === updateStatusTypes.AVAILABLE} noUpdateAvailable={updateStatus === updateStatusTypes.NOT_AVAILABLE} updateIsReadyToInstall={updateStatus === updateStatusTypes.DOWNLOADED} + updateFailed={updateStatus === updateStatusTypes.FAILED} onSubmit={d => this.onSubmit(d)} getCacheSize={() => app.cacheSize} isClearingAllCache={isClearingAllCache} diff --git a/src/electron/ipc-api/autoUpdate.ts b/src/electron/ipc-api/autoUpdate.ts index e6b805edc..33af57efc 100644 --- a/src/electron/ipc-api/autoUpdate.ts +++ b/src/electron/ipc-api/autoUpdate.ts @@ -39,8 +39,7 @@ export default (params: { mainWindow: BrowserWindow; settings: any }) => { }, 20); } } catch (error) { - console.error(error); - event.sender.send('autoUpdate', { error: true }); + event.sender.send('autoUpdate', { error }); } } }); @@ -74,9 +73,9 @@ export default (params: { mainWindow: BrowserWindow; settings: any }) => { params.mainWindow.webContents.send('autoUpdate', { downloaded: true }); }); - autoUpdater.on('error', () => { + autoUpdater.on('error', error => { debug('update-error'); - params.mainWindow.webContents.send('autoUpdate', { error: true }); + params.mainWindow.webContents.send('autoUpdate', { error }); }); } }; diff --git a/src/stores/AppStore.js b/src/stores/AppStore.js index 5881e37a4..eca347153 100644 --- a/src/stores/AppStore.js +++ b/src/stores/AppStore.js @@ -181,6 +181,7 @@ export default class AppStore extends Store { } if (data.error) { + console.log('Updater error:', data.error); this.updateStatus = this.updateStatusTypes.FAILED; } }); -- cgit v1.2.3-54-g00ecf