From 553832bdfaad96af53fb7249344f9778e4460920 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gon=C3=A7alo=20Santos?= Date: Thu, 14 May 2020 21:05:51 +0100 Subject: [PATCH] Create confirm download dialog --- browser/main/index.js | 20 +++++++++++--- .../main/modals/PreferencesModal/InfoTab.js | 27 +++++++++---------- 2 files changed, 30 insertions(+), 17 deletions(-) diff --git a/browser/main/index.js b/browser/main/index.js index 852ddd3a..f25f05be 100644 --- a/browser/main/index.js +++ b/browser/main/index.js @@ -12,6 +12,7 @@ import DevTools from './DevTools' require('./lib/ipcClient') require('../lib/customMeta') import i18n from 'browser/lib/i18n' +import ConfigManager from './lib/ConfigManager' const electron = require('electron') @@ -107,6 +108,21 @@ function updateApp() { } } +function downloadUpdate() { + const index = dialog.showMessageBox(remote.getCurrentWindow(), { + type: 'warning', + message: i18n.__('Update Boostnote'), + detail: i18n.__('New Boostnote is ready to be downloaded.'), + buttons: [i18n.__('Download now'), i18n.__('Ignore updates')] + }) + + if (index === 0) { + ipcRenderer.send('update-app-confirm') + } else if (index === 1) { + ConfigManager.set({ autoUpdateEnabled: false }) + } +} + ReactDOM.render( @@ -147,9 +163,7 @@ ReactDOM.render( }) ipcRenderer.on('update-found', function() { - notify('Update found!', { - body: 'Preparing to update...' - }) + downloadUpdate() }) ipcRenderer.on('update-not-found', function(_, msg) { diff --git a/browser/main/modals/PreferencesModal/InfoTab.js b/browser/main/modals/PreferencesModal/InfoTab.js index 88cc935b..df90163a 100644 --- a/browser/main/modals/PreferencesModal/InfoTab.js +++ b/browser/main/modals/PreferencesModal/InfoTab.js @@ -23,13 +23,22 @@ class InfoTab extends React.Component { } } + componentDidMount() { + const { autoUpdateEnabled, amaEnabled } = ConfigManager.get() + + this.setState({ config: { autoUpdateEnabled, amaEnabled } }) + } + handleLinkClick(e) { shell.openExternal(e.currentTarget.href) e.preventDefault() } handleConfigChange(e) { - const newConfig = { amaEnabled: this.refs.amaEnabled.checked } + const newConfig = { + amaEnabled: this.refs.amaEnabled.checked, + autoUpdateEnabled: this.refs.autoUpdateEnabled.checked + } this.setState({ config: newConfig }) } @@ -77,9 +86,7 @@ class InfoTab extends React.Component { } handleSaveButtonClick(e) { - const newConfig = { - amaEnabled: this.state.config.amaEnabled - } + const newConfig = this.state.config if (!newConfig.amaEnabled) { AwsMobileAnalyticsConfig.recordDynamicCustomEvent('DISABLE_AMA') @@ -106,15 +113,6 @@ class InfoTab extends React.Component { }) } - toggleAutoUpdate() { - const newConfig = { - autoUpdateEnabled: !this.state.config.autoUpdateEnabled - } - - this.setState({ config: newConfig }) - ConfigManager.set(newConfig) - } - infoMessage() { const { amaMessage } = this.state return amaMessage ?

{amaMessage}

: null @@ -260,7 +258,8 @@ class InfoTab extends React.Component {