1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00

Consolidate more startables and stoppables

Co-authored-by: Janne Savolainen <janne.savolainen@live.fi>

Signed-off-by: Iku-turso <mikko.aspiala@gmail.com>
This commit is contained in:
Iku-turso 2022-04-11 14:18:53 +03:00 committed by Janne Savolainen
parent 960d76b0f5
commit f2d52066f3
No known key found for this signature in database
GPG Key ID: 8C6CFB2FFFE8F68A
7 changed files with 49 additions and 59 deletions

View File

@ -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),
);
},
});

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;