mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
Switch to using dependency instead of legacy-di
Co-authored-by: Mikko Aspiala <mikko.aspiala@gmail.com> Signed-off-by: Janne Savolainen <janne.savolainen@live.fi>
This commit is contained in:
parent
8cdb0e0bcb
commit
a9668ad199
@ -11,6 +11,7 @@ import type { CatalogEntityRegistry as MainCatalogEntityRegistry } from "../main
|
||||
import type { CatalogEntityRegistry as RendererCatalogEntityRegistry } from "../renderer/api/catalog/entity/registry";
|
||||
import type { GetExtensionPageParameters } from "../renderer/routes/get-extension-page-parameters.injectable";
|
||||
import type { FileSystemProvisionerStore } from "./extension-loader/file-system-provisioner-store/file-system-provisioner-store";
|
||||
import type { NavigateForExtension } from "../main/start-main-application/lens-window/navigate-for-extension.injectable";
|
||||
|
||||
export interface LensExtensionDependencies {
|
||||
readonly fileSystemProvisionerStore: FileSystemProvisionerStore;
|
||||
@ -18,6 +19,7 @@ export interface LensExtensionDependencies {
|
||||
|
||||
export interface LensMainExtensionDependencies extends LensExtensionDependencies {
|
||||
readonly entityRegistry: MainCatalogEntityRegistry;
|
||||
readonly navigate: NavigateForExtension;
|
||||
}
|
||||
|
||||
export interface LensRendererExtensionDependencies extends LensExtensionDependencies {
|
||||
|
||||
@ -10,8 +10,6 @@ import type { MenuRegistration } from "../main/menu/menu-registration";
|
||||
import type { TrayMenuRegistration } from "../main/tray/tray-menu-registration";
|
||||
import type { ShellEnvModifier } from "../main/shell-session/shell-env-modifier/shell-env-modifier-registration";
|
||||
import type { LensMainExtensionDependencies } from "./lens-extension-set-dependencies";
|
||||
import { Environments, getEnvironmentSpecificLegacyGlobalDiForExtensionApi } from "./as-legacy-globals-for-extension-api/legacy-global-di-for-extension-api";
|
||||
import navigateForExtensionInjectable from "../main/start-main-application/lens-window/navigate-for-extension.injectable";
|
||||
|
||||
export class LensMainExtension extends LensExtension<LensMainExtensionDependencies> {
|
||||
appMenus: MenuRegistration[] = [];
|
||||
@ -33,11 +31,7 @@ export class LensMainExtension extends LensExtension<LensMainExtensionDependenci
|
||||
terminalShellEnvModifier?: ShellEnvModifier;
|
||||
|
||||
async navigate(pageId?: string, params?: Record<string, any>, frameId?: number) {
|
||||
const di = getEnvironmentSpecificLegacyGlobalDiForExtensionApi(Environments.main);
|
||||
|
||||
const navigate = di.inject(navigateForExtensionInjectable);
|
||||
|
||||
return navigate(this.id, pageId, params, frameId);
|
||||
await this[lensExtensionDependencies].navigate(this.id, pageId, params, frameId);
|
||||
}
|
||||
|
||||
addCatalogSource(id: string, source: IObservableArray<CatalogEntity>) {
|
||||
|
||||
@ -9,6 +9,7 @@ import { lensExtensionDependencies } from "../../extensions/lens-extension";
|
||||
import type { LensMainExtensionDependencies } from "../../extensions/lens-extension-set-dependencies";
|
||||
import type { LensMainExtension } from "../../extensions/lens-main-extension";
|
||||
import catalogEntityRegistryInjectable from "../catalog/entity-registry.injectable";
|
||||
import navigateForExtensionInjectable from "../start-main-application/lens-window/navigate-for-extension.injectable";
|
||||
|
||||
const createExtensionInstanceInjectable = getInjectable({
|
||||
id: "create-extension-instance",
|
||||
@ -16,6 +17,7 @@ const createExtensionInstanceInjectable = getInjectable({
|
||||
const deps: LensMainExtensionDependencies = {
|
||||
fileSystemProvisionerStore: di.inject(fileSystemProvisionerStoreInjectable),
|
||||
entityRegistry: di.inject(catalogEntityRegistryInjectable),
|
||||
navigate: di.inject(navigateForExtensionInjectable),
|
||||
};
|
||||
|
||||
return (ExtensionClass, extension) => {
|
||||
|
||||
@ -8,10 +8,17 @@ import clusterFramesInjectable from "../../../common/cluster-frames.injectable";
|
||||
import showApplicationWindowInjectable from "./show-application-window.injectable";
|
||||
import applicationWindowInjectable from "./application-window/application-window.injectable";
|
||||
|
||||
export type NavigateForExtension = (
|
||||
extId: string,
|
||||
pageId?: string,
|
||||
params?: Record<string, any>,
|
||||
frameId?: number
|
||||
) => Promise<void>;
|
||||
|
||||
const navigateForExtensionInjectable = getInjectable({
|
||||
id: "navigate-for-extension",
|
||||
|
||||
instantiate: (di) => {
|
||||
instantiate: (di): NavigateForExtension => {
|
||||
const applicationWindow = di.inject(applicationWindowInjectable);
|
||||
const clusterFrames = di.inject(clusterFramesInjectable);
|
||||
const showApplicationWindow = di.inject(showApplicationWindowInjectable);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user