diff --git a/src/main/catalog-sync-to-renderer/catalog-sync-to-renderer.injectable.ts b/src/main/catalog-sync-to-renderer/catalog-sync-to-renderer.injectable.ts index f939e7f675..961ddee1f9 100644 --- a/src/main/catalog-sync-to-renderer/catalog-sync-to-renderer.injectable.ts +++ b/src/main/catalog-sync-to-renderer/catalog-sync-to-renderer.injectable.ts @@ -5,6 +5,7 @@ import { getInjectable } from "@ogre-tools/injectable"; import catalogEntityRegistryInjectable from "../catalog/catalog-entity-registry.injectable"; import { startCatalogSyncToRenderer } from "../catalog-pusher"; +import { getStartableStoppable } from "../../common/utils/get-startable-stoppable"; const catalogSyncToRendererInjectable = getInjectable({ id: "catalog-sync-to-renderer", @@ -12,15 +13,9 @@ const catalogSyncToRendererInjectable = getInjectable({ instantiate: (di) => { const catalogEntityRegistry = di.inject(catalogEntityRegistryInjectable); - let disposer: () => void; - - return { - start: () => { - disposer = startCatalogSyncToRenderer(catalogEntityRegistry); - }, - - stop: () => disposer?.(), - }; + return getStartableStoppable(() => + startCatalogSyncToRenderer(catalogEntityRegistry), + ); }, }); diff --git a/src/main/catalog-sync-to-renderer/start-catalog-sync-when-root-frame-is-rendered.injectable.ts b/src/main/catalog-sync-to-renderer/start-catalog-sync.injectable.ts similarity index 77% rename from src/main/catalog-sync-to-renderer/start-catalog-sync-when-root-frame-is-rendered.injectable.ts rename to src/main/catalog-sync-to-renderer/start-catalog-sync.injectable.ts index 1936e17da6..e29952859d 100644 --- a/src/main/catalog-sync-to-renderer/start-catalog-sync-when-root-frame-is-rendered.injectable.ts +++ b/src/main/catalog-sync-to-renderer/start-catalog-sync.injectable.ts @@ -6,8 +6,8 @@ import { getInjectable } from "@ogre-tools/injectable"; import { onRootFrameRenderInjectionToken } from "../start-main-application/on-root-frame-render/on-root-frame-render-injection-token"; import catalogSyncToRendererInjectable from "./catalog-sync-to-renderer.injectable"; -const startCatalogSyncWhenRootFrameIsRenderedInjectable = getInjectable({ - id: "start-catalog-sync-when-root-frame-is-rendered", +const startCatalogSyncInjectable = getInjectable({ + id: "start-catalog-sync", instantiate: (di) => { const catalogSyncToRenderer = di.inject(catalogSyncToRendererInjectable); @@ -22,4 +22,4 @@ const startCatalogSyncWhenRootFrameIsRenderedInjectable = getInjectable({ injectionToken: onRootFrameRenderInjectionToken, }); -export default startCatalogSyncWhenRootFrameIsRenderedInjectable; +export default startCatalogSyncInjectable; diff --git a/src/main/catalog-sync-to-renderer/stop-catalog-sync-when-application-is-closed.injectable.ts b/src/main/catalog-sync-to-renderer/stop-catalog-sync.injectable.ts similarity index 78% rename from src/main/catalog-sync-to-renderer/stop-catalog-sync-when-application-is-closed.injectable.ts rename to src/main/catalog-sync-to-renderer/stop-catalog-sync.injectable.ts index 1281fe6658..40504f6987 100644 --- a/src/main/catalog-sync-to-renderer/stop-catalog-sync-when-application-is-closed.injectable.ts +++ b/src/main/catalog-sync-to-renderer/stop-catalog-sync.injectable.ts @@ -6,8 +6,8 @@ import { getInjectable } from "@ogre-tools/injectable"; import catalogSyncToRendererInjectable from "./catalog-sync-to-renderer.injectable"; import { onApplicationSoftQuitInjectionToken } from "../start-main-application/on-application-soft-quit/on-application-soft-quit-injection-token"; -const stopCatalogSyncWhenApplicationIsClosedInjectable = getInjectable({ - id: "stop-catalog-sync-when-application-is-closed", +const stopCatalogSyncInjectable = getInjectable({ + id: "stop-catalog-sync", instantiate: (di) => { const catalogSyncToRenderer = di.inject(catalogSyncToRendererInjectable); @@ -22,4 +22,4 @@ const stopCatalogSyncWhenApplicationIsClosedInjectable = getInjectable({ injectionToken: onApplicationSoftQuitInjectionToken, }); -export default stopCatalogSyncWhenApplicationIsClosedInjectable; +export default stopCatalogSyncInjectable; diff --git a/src/main/menu/application-menu-initializer.injectable.ts b/src/main/menu/application-menu-initializer.injectable.ts deleted file mode 100644 index cad96205f0..0000000000 --- a/src/main/menu/application-menu-initializer.injectable.ts +++ /dev/null @@ -1,30 +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 { autorun } from "mobx"; -import { buildMenu } from "./menu"; -import applicationMenuItemsInjectable from "./application-menu-items.injectable"; - -const applicationMenuInitializerInjectable = getInjectable({ - id: "application-menu-initializer", - - instantiate: (di) => { - let disposer: () => void; - - return { - start: () => { - const applicationMenuItems = di.inject(applicationMenuItemsInjectable); - - disposer = autorun(() => buildMenu(applicationMenuItems.get()), { - delay: 100, - }); - }, - - stop: () => disposer?.(), - }; - }, -}); - -export default applicationMenuInitializerInjectable; diff --git a/src/main/menu/application-menu.injectable.ts b/src/main/menu/application-menu.injectable.ts new file mode 100644 index 0000000000..4daf56bb6e --- /dev/null +++ b/src/main/menu/application-menu.injectable.ts @@ -0,0 +1,25 @@ +/** + * 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 { autorun } from "mobx"; +import { buildMenu } from "./menu"; +import applicationMenuItemsInjectable from "./application-menu-items.injectable"; +import { getStartableStoppable } from "../../common/utils/get-startable-stoppable"; + +const applicationMenuInjectable = getInjectable({ + id: "application-menu", + + instantiate: (di) => { + const applicationMenuItems = di.inject(applicationMenuItemsInjectable); + + return getStartableStoppable(() => + autorun(() => buildMenu(applicationMenuItems.get()), { + delay: 100, + }), + ); + }, +}); + +export default applicationMenuInjectable; diff --git a/src/main/menu/setup-application-menu-when-application-is-ready.injectable.ts b/src/main/menu/start-application-menu.injectable.ts similarity index 53% rename from src/main/menu/setup-application-menu-when-application-is-ready.injectable.ts rename to src/main/menu/start-application-menu.injectable.ts index 71f25ba1f7..34845d4d75 100644 --- a/src/main/menu/setup-application-menu-when-application-is-ready.injectable.ts +++ b/src/main/menu/start-application-menu.injectable.ts @@ -4,19 +4,19 @@ */ import { getInjectable } from "@ogre-tools/injectable"; import { afterApplicationIsReadyInjectionToken } from "../start-main-application/after-application-is-ready/after-application-is-ready-injection-token"; -import applicationMenuInitializerInjectable from "./application-menu-initializer.injectable"; +import applicationMenuInjectable from "./application-menu.injectable"; -const setupApplicationMenuWhenApplicationIsReadyInjectable = getInjectable({ - id: "setup-application-menu-when-application-is-ready", +const startApplicationMenuInjectable = getInjectable({ + id: "start-application-menu", instantiate: (di) => { - const initializeApplicationMenu = di.inject( - applicationMenuInitializerInjectable, + const applicationMenu = di.inject( + applicationMenuInjectable, ); return { run: () => { - initializeApplicationMenu.start(); + applicationMenu.start(); }, }; }, @@ -24,4 +24,4 @@ const setupApplicationMenuWhenApplicationIsReadyInjectable = getInjectable({ injectionToken: afterApplicationIsReadyInjectionToken, }); -export default setupApplicationMenuWhenApplicationIsReadyInjectable; +export default startApplicationMenuInjectable; diff --git a/src/main/menu/cleanup-application-menu-when-application-is-quit.injectable.ts b/src/main/menu/stop-application-menu.injectable.ts similarity index 53% rename from src/main/menu/cleanup-application-menu-when-application-is-quit.injectable.ts rename to src/main/menu/stop-application-menu.injectable.ts index d7c73349a6..d50fe2f936 100644 --- a/src/main/menu/cleanup-application-menu-when-application-is-quit.injectable.ts +++ b/src/main/menu/stop-application-menu.injectable.ts @@ -3,20 +3,20 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ import { getInjectable } from "@ogre-tools/injectable"; -import applicationMenuInitializerInjectable from "./application-menu-initializer.injectable"; +import applicationMenuInjectable from "./application-menu.injectable"; import { onApplicationHardQuitInjectionToken } from "../start-main-application/on-application-hard-quit/on-application-hard-quit-injection-token"; -const cleanupApplicationMenuWhenApplicationIsQuitInjectable = getInjectable({ - id: "cleanup-application-menu-when-application-is-quit", +const stopApplicationMenuInjectable = getInjectable({ + id: "stop-application-menu", instantiate: (di) => { - const initializeApplicationMenu = di.inject( - applicationMenuInitializerInjectable, + const applicationMenu = di.inject( + applicationMenuInjectable, ); return { run: () => { - initializeApplicationMenu.stop(); + applicationMenu.stop(); }, }; }, @@ -24,4 +24,4 @@ const cleanupApplicationMenuWhenApplicationIsQuitInjectable = getInjectable({ injectionToken: onApplicationHardQuitInjectionToken, }); -export default cleanupApplicationMenuWhenApplicationIsQuitInjectable; +export default stopApplicationMenuInjectable;