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:
parent
960d76b0f5
commit
f2d52066f3
@ -5,6 +5,7 @@
|
|||||||
import { getInjectable } from "@ogre-tools/injectable";
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
import catalogEntityRegistryInjectable from "../catalog/catalog-entity-registry.injectable";
|
import catalogEntityRegistryInjectable from "../catalog/catalog-entity-registry.injectable";
|
||||||
import { startCatalogSyncToRenderer } from "../catalog-pusher";
|
import { startCatalogSyncToRenderer } from "../catalog-pusher";
|
||||||
|
import { getStartableStoppable } from "../../common/utils/get-startable-stoppable";
|
||||||
|
|
||||||
const catalogSyncToRendererInjectable = getInjectable({
|
const catalogSyncToRendererInjectable = getInjectable({
|
||||||
id: "catalog-sync-to-renderer",
|
id: "catalog-sync-to-renderer",
|
||||||
@ -12,15 +13,9 @@ const catalogSyncToRendererInjectable = getInjectable({
|
|||||||
instantiate: (di) => {
|
instantiate: (di) => {
|
||||||
const catalogEntityRegistry = di.inject(catalogEntityRegistryInjectable);
|
const catalogEntityRegistry = di.inject(catalogEntityRegistryInjectable);
|
||||||
|
|
||||||
let disposer: () => void;
|
return getStartableStoppable(() =>
|
||||||
|
startCatalogSyncToRenderer(catalogEntityRegistry),
|
||||||
return {
|
);
|
||||||
start: () => {
|
|
||||||
disposer = startCatalogSyncToRenderer(catalogEntityRegistry);
|
|
||||||
},
|
|
||||||
|
|
||||||
stop: () => disposer?.(),
|
|
||||||
};
|
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -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 { onRootFrameRenderInjectionToken } from "../start-main-application/on-root-frame-render/on-root-frame-render-injection-token";
|
||||||
import catalogSyncToRendererInjectable from "./catalog-sync-to-renderer.injectable";
|
import catalogSyncToRendererInjectable from "./catalog-sync-to-renderer.injectable";
|
||||||
|
|
||||||
const startCatalogSyncWhenRootFrameIsRenderedInjectable = getInjectable({
|
const startCatalogSyncInjectable = getInjectable({
|
||||||
id: "start-catalog-sync-when-root-frame-is-rendered",
|
id: "start-catalog-sync",
|
||||||
|
|
||||||
instantiate: (di) => {
|
instantiate: (di) => {
|
||||||
const catalogSyncToRenderer = di.inject(catalogSyncToRendererInjectable);
|
const catalogSyncToRenderer = di.inject(catalogSyncToRendererInjectable);
|
||||||
@ -22,4 +22,4 @@ const startCatalogSyncWhenRootFrameIsRenderedInjectable = getInjectable({
|
|||||||
injectionToken: onRootFrameRenderInjectionToken,
|
injectionToken: onRootFrameRenderInjectionToken,
|
||||||
});
|
});
|
||||||
|
|
||||||
export default startCatalogSyncWhenRootFrameIsRenderedInjectable;
|
export default startCatalogSyncInjectable;
|
||||||
@ -6,8 +6,8 @@ import { getInjectable } from "@ogre-tools/injectable";
|
|||||||
import catalogSyncToRendererInjectable from "./catalog-sync-to-renderer.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";
|
import { onApplicationSoftQuitInjectionToken } from "../start-main-application/on-application-soft-quit/on-application-soft-quit-injection-token";
|
||||||
|
|
||||||
const stopCatalogSyncWhenApplicationIsClosedInjectable = getInjectable({
|
const stopCatalogSyncInjectable = getInjectable({
|
||||||
id: "stop-catalog-sync-when-application-is-closed",
|
id: "stop-catalog-sync",
|
||||||
|
|
||||||
instantiate: (di) => {
|
instantiate: (di) => {
|
||||||
const catalogSyncToRenderer = di.inject(catalogSyncToRendererInjectable);
|
const catalogSyncToRenderer = di.inject(catalogSyncToRendererInjectable);
|
||||||
@ -22,4 +22,4 @@ const stopCatalogSyncWhenApplicationIsClosedInjectable = getInjectable({
|
|||||||
injectionToken: onApplicationSoftQuitInjectionToken,
|
injectionToken: onApplicationSoftQuitInjectionToken,
|
||||||
});
|
});
|
||||||
|
|
||||||
export default stopCatalogSyncWhenApplicationIsClosedInjectable;
|
export default stopCatalogSyncInjectable;
|
||||||
@ -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;
|
|
||||||
25
src/main/menu/application-menu.injectable.ts
Normal file
25
src/main/menu/application-menu.injectable.ts
Normal 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;
|
||||||
@ -4,19 +4,19 @@
|
|||||||
*/
|
*/
|
||||||
import { getInjectable } from "@ogre-tools/injectable";
|
import { getInjectable } from "@ogre-tools/injectable";
|
||||||
import { afterApplicationIsReadyInjectionToken } from "../start-main-application/after-application-is-ready/after-application-is-ready-injection-token";
|
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({
|
const startApplicationMenuInjectable = getInjectable({
|
||||||
id: "setup-application-menu-when-application-is-ready",
|
id: "start-application-menu",
|
||||||
|
|
||||||
instantiate: (di) => {
|
instantiate: (di) => {
|
||||||
const initializeApplicationMenu = di.inject(
|
const applicationMenu = di.inject(
|
||||||
applicationMenuInitializerInjectable,
|
applicationMenuInjectable,
|
||||||
);
|
);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
run: () => {
|
run: () => {
|
||||||
initializeApplicationMenu.start();
|
applicationMenu.start();
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
@ -24,4 +24,4 @@ const setupApplicationMenuWhenApplicationIsReadyInjectable = getInjectable({
|
|||||||
injectionToken: afterApplicationIsReadyInjectionToken,
|
injectionToken: afterApplicationIsReadyInjectionToken,
|
||||||
});
|
});
|
||||||
|
|
||||||
export default setupApplicationMenuWhenApplicationIsReadyInjectable;
|
export default startApplicationMenuInjectable;
|
||||||
@ -3,20 +3,20 @@
|
|||||||
* Licensed under MIT License. See LICENSE in root directory for more information.
|
* Licensed under MIT License. See LICENSE in root directory for more information.
|
||||||
*/
|
*/
|
||||||
import { getInjectable } from "@ogre-tools/injectable";
|
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";
|
import { onApplicationHardQuitInjectionToken } from "../start-main-application/on-application-hard-quit/on-application-hard-quit-injection-token";
|
||||||
|
|
||||||
const cleanupApplicationMenuWhenApplicationIsQuitInjectable = getInjectable({
|
const stopApplicationMenuInjectable = getInjectable({
|
||||||
id: "cleanup-application-menu-when-application-is-quit",
|
id: "stop-application-menu",
|
||||||
|
|
||||||
instantiate: (di) => {
|
instantiate: (di) => {
|
||||||
const initializeApplicationMenu = di.inject(
|
const applicationMenu = di.inject(
|
||||||
applicationMenuInitializerInjectable,
|
applicationMenuInjectable,
|
||||||
);
|
);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
run: () => {
|
run: () => {
|
||||||
initializeApplicationMenu.stop();
|
applicationMenu.stop();
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
@ -24,4 +24,4 @@ const cleanupApplicationMenuWhenApplicationIsQuitInjectable = getInjectable({
|
|||||||
injectionToken: onApplicationHardQuitInjectionToken,
|
injectionToken: onApplicationHardQuitInjectionToken,
|
||||||
});
|
});
|
||||||
|
|
||||||
export default cleanupApplicationMenuWhenApplicationIsQuitInjectable;
|
export default stopApplicationMenuInjectable;
|
||||||
Loading…
Reference in New Issue
Block a user