From f66cb2651f7b7249b121de22edec423d3be5eded Mon Sep 17 00:00:00 2001 From: beyondkmp Date: Fri, 22 Aug 2025 14:41:36 +0800 Subject: [PATCH] refactor: simplify NotificationService initialization and use windowService for notifications (#9411) * refactor: simplify NotificationService initialization and use windowService for notifications - Removed the dependency on BrowserWindow in NotificationService constructor. - Updated the notification handling to utilize windowService for showing notifications and sending events, improving code modularity. * refactor: remove constructor from NotificationService for cleaner initialization --- src/main/ipc.ts | 2 +- src/main/services/NotificationService.ts | 14 ++++---------- 2 files changed, 5 insertions(+), 11 deletions(-) diff --git a/src/main/ipc.ts b/src/main/ipc.ts index 8689ab2c3b..2183c30831 100644 --- a/src/main/ipc.ts +++ b/src/main/ipc.ts @@ -71,7 +71,7 @@ const dxtService = new DxtService() export function registerIpc(mainWindow: BrowserWindow, app: Electron.App) { const appUpdater = new AppUpdater() - const notificationService = new NotificationService(mainWindow) + const notificationService = new NotificationService() // Initialize Python service with main window pythonService.setMainWindow(mainWindow) diff --git a/src/main/services/NotificationService.ts b/src/main/services/NotificationService.ts index 5ba0d82ce4..361908f209 100644 --- a/src/main/services/NotificationService.ts +++ b/src/main/services/NotificationService.ts @@ -1,14 +1,8 @@ -import { BrowserWindow, Notification as ElectronNotification } from 'electron' +import { Notification as ElectronNotification } from 'electron' import { Notification } from 'src/renderer/src/types/notification' +import { windowService } from './WindowService' class NotificationService { - private window: BrowserWindow - - constructor(window: BrowserWindow) { - // Initialize the service - this.window = window - } - public async sendNotification(notification: Notification) { // 使用 Electron Notification API const electronNotification = new ElectronNotification({ @@ -17,8 +11,8 @@ class NotificationService { }) electronNotification.on('click', () => { - this.window.show() - this.window.webContents.send('notification-click', notification) + windowService.getMainWindow()?.show() + windowService.getMainWindow()?.webContents.send('notification-click', notification) }) electronNotification.show()