Extract responsibilities to delegatees

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

Signed-off-by: Iku-turso <mikko.aspiala@gmail.com>
This commit is contained in:
Iku-tursoandJanne Savolainen authored and Janne Savolainen committed 2022-05-11 08:25:30 +03:00
1 parent 8b3bbc78b8
commit e729babf3d
4 files changed
+39 -10

No files matched your search

@@ -46,6 +46,9 @@ interface Dependencies {
export class LensProtocolRouterMain extends proto.LensProtocolRouter {
private missingExtensionHandlers: FallbackHandler[] = [];
/**
* @deprecated This is used to solve out-of-place temporal dependency. Remove, and solve otherwise.
*/
@observable rendererLoaded = false;
protected disposers = disposer();
@@ -5,7 +5,6 @@
import { getInjectable } from "@ogre-tools/injectable";
import { ipcMainOn } from "../../../../common/ipc";
import { IpcRendererNavigationEvents } from "../../../../renderer/navigation/events";
import lensProtocolRouterMainInjectable from "../../../protocol-handler/lens-protocol-router-main/lens-protocol-router-main.injectable";
import { onRootFrameRenderInjectionToken } from "../../on-root-frame-render/on-root-frame-render-injection-token";
import { afterApplicationIsReadyInjectionToken } from "../after-application-is-ready-injection-token";
import { runManyFor } from "../../run-many-for";
@@ -14,7 +13,6 @@ const setupListenerForRootFrameRenderingInjectable = getInjectable({
id: "setup-listener-for-root-frame-rendering",
instantiate: (di) => {
const lensProtocolRouterMain = di.inject(lensProtocolRouterMainInjectable);
const runMany = runManyFor(di);
const runOnRootFrameRender = runMany(
@@ -24,10 +22,7 @@ const setupListenerForRootFrameRenderingInjectable = getInjectable({
return {
run: () => {
ipcMainOn(IpcRendererNavigationEvents.LOADED, async () => {
await runOnRootFrameRender();
lensProtocolRouterMain.rendererLoaded = true;
});
},
};
@@ -3,20 +3,22 @@
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import { getInjectable } from "@ogre-tools/injectable";
import { runInAction } from "mobx";
import lensProtocolRouterMainInjectable from "../../../protocol-handler/lens-protocol-router-main/lens-protocol-router-main.injectable";
import { onApplicationSoftQuitInjectionToken } from "../on-application-soft-quit-injection-token";
const makeProtocolRouterNotHaveLoadedRendererInjectable = getInjectable({
id: "make-protocol-router-not-have-loaded-renderer",
const flagRendererAsNotLoaded = getInjectable({
id: "stop-deep-linking",
instantiate: (di) => {
const lensProtocolRouterMain = di.inject(lensProtocolRouterMainInjectable);
return {
run: () => {
// This is set to false here so that LPRM can wait to send future lens://
// requests until after it loads again
runInAction(() => {
// Todo: remove this kludge which enables out-of-place temporal dependency.
lensProtocolRouterMain.rendererLoaded = false;
});
},
};
},
@@ -24,4 +26,4 @@ const makeProtocolRouterNotHaveLoadedRendererInjectable = getInjectable({
injectionToken: onApplicationSoftQuitInjectionToken,
});
export default makeProtocolRouterNotHaveLoadedRendererInjectable;
export default flagRendererAsNotLoaded;
@@ -0,0 +1,29 @@
/**
* 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 { onRootFrameRenderInjectionToken } from "../on-root-frame-render-injection-token";
import lensProtocolRouterMainInjectable from "../../../protocol-handler/lens-protocol-router-main/lens-protocol-router-main.injectable";
import { runInAction } from "mobx";
const flagRendererAsLoaded = getInjectable({
id: "flag-renderer-as-loaded",
instantiate: (di) => {
const lensProtocolRouterMain = di.inject(lensProtocolRouterMainInjectable);
return {
run: () => {
runInAction(() => {
// Todo: remove this kludge which enables out-of-place temporal dependency.
lensProtocolRouterMain.rendererLoaded = true;
});
},
};
},
injectionToken: onRootFrameRenderInjectionToken,
});
export default flagRendererAsLoaded;