mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
Consolidate implementation of something startable and stoppable
Co-authored-by: Janne Savolainen <janne.savolainen@live.fi> Signed-off-by: Iku-turso <mikko.aspiala@gmail.com>
This commit is contained in:
parent
0650d345c7
commit
cd811cc1f2
@ -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;
|
||||
@ -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;
|
||||
@ -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;
|
||||
33
src/main/tray/tray.injectable.ts
Normal file
33
src/main/tray/tray.injectable.ts
Normal file
@ -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;
|
||||
Loading…
Reference in New Issue
Block a user