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

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-turso 2022-04-13 13:23:14 +03:00 committed by Janne Savolainen
parent 8b3bbc78b8
commit e729babf3d
No known key found for this signature in database
GPG Key ID: 8C6CFB2FFFE8F68A
4 changed files with 40 additions and 11 deletions

View File

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

View File

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

View File

@ -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
lensProtocolRouterMain.rendererLoaded = false;
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;

View File

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