diff --git a/plugins/notifications/back.js b/plugins/notifications/back.js index 4b217968..3b588833 100644 --- a/plugins/notifications/back.js +++ b/plugins/notifications/back.js @@ -1,8 +1,7 @@ const { Notification } = require("electron"); - const getSongInfo = require("../../providers/song-info"); -const notify = (info, notification) => { +const notify = (info) => { let notificationImage = "assets/youtube-music.png"; if (info.image) { @@ -10,31 +9,32 @@ const notify = (info, notification) => { } // Fill the notification with content - notification.title = info.title || "Playing"; - notification.body = info.artist; - notification.icon = notificationImage; - + const notification = { + title: info.title || "Playing", + body: info.artist, + icon: notificationImage, + silent: true, + }; + // Send the notification - notification.show(); + currentNotification = new Notification(notification); + currentNotification.show() + + return currentNotification; }; module.exports = (win) => { const registerCallback = getSongInfo(win); - - // Create a notification - let notification = new Notification( { - title: "", - body: "", - icon: "assets/youtube-music.png", - silent: true, - }); - + let oldNotification; win.on("ready-to-show", () => { // Register the callback for new song information registerCallback((songInfo) => { // If song is playing send notification - if (!songInfo.isPaused) { - notify(songInfo, notification); + if (!songInfo.isPaused) { + // Close the old notification + oldNotification?.close(); + // This fixes a weird bug that would cause the notification to be updated instead of showing + setTimeout(()=>{ oldNotification = notify(songInfo) }, 1); } }); });