Mailspring/internal_packages/notification-update-available/lib/main.cjsx

38 lines
1.1 KiB
CoffeeScript

remote = require 'remote'
{Actions} = require 'nylas-exports'
ipc = require('ipc')
module.exports =
activate: (@state) ->
# Populate our initial state directly from the auto update manager.
updater = remote.getGlobal('application').autoUpdateManager
@_unlisten = Actions.notificationActionTaken.listen(@_onNotificationActionTaken, @)
if updater.getState() is 'update-available'
@displayNotification(updater.releaseVersion)
atom.onUpdateAvailable ({releaseVersion, releaseNotes} = {}) =>
@displayNotification(releaseVersion)
displayNotification: (version) ->
version = if version then "(#{version})" else ''
Actions.postNotification
type: 'info'
tag: 'app-update'
sticky: true
message: "An update to Nylas Mail is available #{version} - Restart now to update!",
icon: 'fa-flag'
actions: [{
label: 'Install'
id: 'release-bar:install-update'
}]
deactivate: ->
@_unlisten()
_onNotificationActionTaken: ({notification, action}) ->
if action.id is 'release-bar:install-update'
ipc.send 'command', 'application:install-update'
true