From cd811cc1f230ced274f591acbe3cfb041136dcde Mon Sep 17 00:00:00 2001 From: Iku-turso Date: Mon, 11 Apr 2022 14:08:45 +0300 Subject: [PATCH] Consolidate implementation of something startable and stoppable Co-authored-by: Janne Savolainen Signed-off-by: Iku-turso --- ...injectable.ts => start-tray.injectable.ts} | 10 +++--- ....injectable.ts => stop-tray.injectable.ts} | 10 +++--- src/main/tray/tray-initializer.injectable.ts | 33 ------------------- src/main/tray/tray.injectable.ts | 33 +++++++++++++++++++ 4 files changed, 43 insertions(+), 43 deletions(-) rename src/main/tray/{setup-tray-when-application-is-ready.injectable.ts => start-tray.injectable.ts} (63%) rename src/main/tray/{cleanup-tray-when-application-is-quit.injectable.ts => stop-tray.injectable.ts} (63%) delete mode 100644 src/main/tray/tray-initializer.injectable.ts create mode 100644 src/main/tray/tray.injectable.ts diff --git a/src/main/tray/setup-tray-when-application-is-ready.injectable.ts b/src/main/tray/start-tray.injectable.ts similarity index 63% rename from src/main/tray/setup-tray-when-application-is-ready.injectable.ts rename to src/main/tray/start-tray.injectable.ts index 63f7929c21..696d667786 100644 --- a/src/main/tray/setup-tray-when-application-is-ready.injectable.ts +++ b/src/main/tray/start-tray.injectable.ts @@ -4,13 +4,13 @@ */ import { getInjectable } from "@ogre-tools/injectable"; import { afterApplicationIsReadyInjectionToken } from "../start-main-application/after-application-is-ready/after-application-is-ready-injection-token"; -import trayInitializerInjectable from "./tray-initializer.injectable"; +import trayInjectable from "./tray.injectable"; -const setupTrayWhenApplicationIsReadyInjectable = getInjectable({ - id: "setup-tray-when-application-is-ready", +const startTrayInjectable = getInjectable({ + id: "start-tray", instantiate: (di) => { - const trayInitializer = di.inject(trayInitializerInjectable); + const trayInitializer = di.inject(trayInjectable); return { run: () => { @@ -22,4 +22,4 @@ const setupTrayWhenApplicationIsReadyInjectable = getInjectable({ injectionToken: afterApplicationIsReadyInjectionToken, }); -export default setupTrayWhenApplicationIsReadyInjectable; +export default startTrayInjectable; diff --git a/src/main/tray/cleanup-tray-when-application-is-quit.injectable.ts b/src/main/tray/stop-tray.injectable.ts similarity index 63% rename from src/main/tray/cleanup-tray-when-application-is-quit.injectable.ts rename to src/main/tray/stop-tray.injectable.ts index 34213dc7b1..ad2b85a3f5 100644 --- a/src/main/tray/cleanup-tray-when-application-is-quit.injectable.ts +++ b/src/main/tray/stop-tray.injectable.ts @@ -3,14 +3,14 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ import { getInjectable } from "@ogre-tools/injectable"; -import trayInitializerInjectable from "./tray-initializer.injectable"; +import trayInjectable from "./tray.injectable"; import { onApplicationHardQuitInjectionToken } from "../start-main-application/on-application-hard-quit/on-application-hard-quit-injection-token"; -const setupTrayWhenApplicationIsQuitInjectable = getInjectable({ - id: "setup-tray-when-application-is-quit", +const stopTrayInjectable = getInjectable({ + id: "stop-tray", instantiate: (di) => { - const trayInitializer = di.inject(trayInitializerInjectable); + const trayInitializer = di.inject(trayInjectable); return { run: () => { @@ -22,4 +22,4 @@ const setupTrayWhenApplicationIsQuitInjectable = getInjectable({ injectionToken: onApplicationHardQuitInjectionToken, }); -export default setupTrayWhenApplicationIsQuitInjectable; +export default stopTrayInjectable; diff --git a/src/main/tray/tray-initializer.injectable.ts b/src/main/tray/tray-initializer.injectable.ts deleted file mode 100644 index aeff32b2b4..0000000000 --- a/src/main/tray/tray-initializer.injectable.ts +++ /dev/null @@ -1,33 +0,0 @@ -/** - * Copyright (c) OpenLens Authors. All rights reserved. - * Licensed under MIT License. See LICENSE in root directory for more information. - */ -import { getInjectable } from "@ogre-tools/injectable"; -import { initTray } from "./tray"; -import windowManagerInjectable from "../window-manager.injectable"; -import trayMenuItemsInjectable from "./tray-menu-items.injectable"; -import navigateToPreferencesInjectable from "../../common/front-end-routing/routes/preferences/navigate-to-preferences.injectable"; -import stopServicesAndExitAppInjectable from "../stop-services-and-exit-app.injectable"; - -const trayInitializerInjectable = getInjectable({ - id: "tray-initializer", - - instantiate: (di) => { - let disposer: () => void; - - return ({ - start: () => { - const windowManager = di.inject(windowManagerInjectable); - const trayMenuItems = di.inject(trayMenuItemsInjectable); - const navigateToPreferences = di.inject(navigateToPreferencesInjectable); - const stopServicesAndExitApp = di.inject(stopServicesAndExitAppInjectable); - - disposer = initTray(windowManager, trayMenuItems, navigateToPreferences, stopServicesAndExitApp); - }, - - stop: () => disposer?.(), - }); - }, -}); - -export default trayInitializerInjectable; diff --git a/src/main/tray/tray.injectable.ts b/src/main/tray/tray.injectable.ts new file mode 100644 index 0000000000..175150d4da --- /dev/null +++ b/src/main/tray/tray.injectable.ts @@ -0,0 +1,33 @@ +/** + * Copyright (c) OpenLens Authors. All rights reserved. + * Licensed under MIT License. See LICENSE in root directory for more information. + */ +import { getInjectable } from "@ogre-tools/injectable"; +import { initTray } from "./tray"; +import windowManagerInjectable from "../window-manager.injectable"; +import trayMenuItemsInjectable from "./tray-menu-items.injectable"; +import navigateToPreferencesInjectable from "../../common/front-end-routing/routes/preferences/navigate-to-preferences.injectable"; +import stopServicesAndExitAppInjectable from "../stop-services-and-exit-app.injectable"; +import { getStartableStoppable } from "../../common/utils/get-startable-stoppable"; + +const trayInjectable = getInjectable({ + id: "tray", + + instantiate: (di) => { + const windowManager = di.inject(windowManagerInjectable); + const trayMenuItems = di.inject(trayMenuItemsInjectable); + const navigateToPreferences = di.inject(navigateToPreferencesInjectable); + const stopServicesAndExitApp = di.inject(stopServicesAndExitAppInjectable); + + return getStartableStoppable(() => + initTray( + windowManager, + trayMenuItems, + navigateToPreferences, + stopServicesAndExitApp, + ), + ); + }, +}); + +export default trayInjectable;