diff --git a/src/extensions/lens-extension-set-dependencies.ts b/src/extensions/lens-extension-set-dependencies.ts index 9f30eeb8b8..42848f7859 100644 --- a/src/extensions/lens-extension-set-dependencies.ts +++ b/src/extensions/lens-extension-set-dependencies.ts @@ -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 { diff --git a/src/extensions/lens-main-extension.ts b/src/extensions/lens-main-extension.ts index acc870c753..accc87989c 100644 --- a/src/extensions/lens-main-extension.ts +++ b/src/extensions/lens-main-extension.ts @@ -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 { appMenus: MenuRegistration[] = []; @@ -33,11 +31,7 @@ export class LensMainExtension extends LensExtension, 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) { diff --git a/src/main/extension-loader/create-extension-instance.injectable.ts b/src/main/extension-loader/create-extension-instance.injectable.ts index d91ca768cf..5617632580 100644 --- a/src/main/extension-loader/create-extension-instance.injectable.ts +++ b/src/main/extension-loader/create-extension-instance.injectable.ts @@ -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) => { diff --git a/src/main/start-main-application/lens-window/navigate-for-extension.injectable.ts b/src/main/start-main-application/lens-window/navigate-for-extension.injectable.ts index 483d9764bc..703ef15f60 100644 --- a/src/main/start-main-application/lens-window/navigate-for-extension.injectable.ts +++ b/src/main/start-main-application/lens-window/navigate-for-extension.injectable.ts @@ -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, + frameId?: number +) => Promise; + 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);