import { React } from 'nylas-exports'; import { ipcRenderer, remote, shell } from 'electron'; import { Notification } from 'nylas-component-kit'; export default class UpdateNotification extends React.Component { static displayName = 'UpdateNotification'; constructor() { super(); this.state = this.getStateFromStores(); } componentDidMount() { this.disposable = AppEnv.onUpdateAvailable(() => { this.setState(this.getStateFromStores()); }); } componentWillUnmount() { this.disposable.dispose(); } getStateFromStores() { const updater = remote.getGlobal('application').autoUpdateManager; const updateAvailable = updater.getState() === 'update-available'; const info = updateAvailable ? updater.getReleaseDetails() : {}; return { updateAvailable, updateIsManual: info.releaseNotes === 'manual-download', version: info.releaseVersion, }; } _onUpdate = () => { ipcRenderer.send('command', 'application:install-update'); }; _onViewChangelog = () => { shell.openExternal('https://github.com/Foundry376/Mailspring/releases/latest'); }; render() { const { updateAvailable, version, updateIsManual } = this.state; if (!updateAvailable) { return ; } return ( ); } }