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 (
)
}
}