forked from viktor-shmigol/electron-windows-badge
-
Notifications
You must be signed in to change notification settings - Fork 1
/
index.js
31 lines (28 loc) · 869 Bytes
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
const { nativeImage, ipcMain } = require('electron');
const BadgeGenerator = require('./badge_generator.js');
const badgeDescription = 'New notification';
const UPDATE_BADGE_EVENT = 'update-badge';
module.exports = class Badge {
constructor(win, opts = {}) {
this.win = win;
this.opts = opts;
this.generator = new BadgeGenerator(win, opts);
this.initListeners();
}
update(badgeNumber) {
if (badgeNumber) {
this.generator.generate(badgeNumber).then((base64) => {
const image = nativeImage.createFromDataURL(base64);
this.win.setOverlayIcon(image, badgeDescription);
});
} else {
this.win.setOverlayIcon(null, badgeDescription);
}
}
initListeners() {
ipcMain.on(UPDATE_BADGE_EVENT, (event, badgeNumber) => {
this.update(badgeNumber);
event.returnValue = 'success';
});
}
}