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 = NylasEnv.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 ( ) } }