diff --git a/extensions/support-page/main.ts b/extensions/support-page/main.ts index 5f34334c69..133df0b890 100644 --- a/extensions/support-page/main.ts +++ b/extensions/support-page/main.ts @@ -1,4 +1,4 @@ -import { LensMainExtension, Registry } from "@k8slens/extensions"; +import { LensMainExtension, Registry, windowManager } from "@k8slens/extensions"; import { supportPageURL } from "./src/support.route"; export default class SupportPageMainExtension extends LensMainExtension { @@ -11,9 +11,11 @@ export default class SupportPageMainExtension extends LensMainExtension { registry.add({ parentId: "help", label: "Support", - async click() { - // fixme: require runtime windowManager (ensureMainWindow + navigate for main) - console.log(`navigate: ${supportPageURL()}`); + click() { + windowManager.navigate({ + channel: "menu:navigate", // fixme: use windowManager.ensureMainWindow from Tray's PR + url: supportPageURL(), + }); } }) ) diff --git a/src/extensions/core-api/index.ts b/src/extensions/core-api/index.ts index d2caf01db5..79d6c98151 100644 --- a/src/extensions/core-api/index.ts +++ b/src/extensions/core-api/index.ts @@ -2,6 +2,8 @@ export * from "../lens-main-extension" export * from "../lens-renderer-extension" +import type { WindowManager } from "../../main/window-manager"; + // APIs import * as EventBus from "./event-bus" import * as Store from "./stores" @@ -9,6 +11,8 @@ import * as Util from "./utils" import * as Registry from "../registries" import * as CommonVars from "../../common/vars"; +export let windowManager: WindowManager; + export { EventBus, Store, diff --git a/src/main/index.ts b/src/main/index.ts index 4306f1dd1e..6444e6b5f0 100644 --- a/src/main/index.ts +++ b/src/main/index.ts @@ -2,6 +2,8 @@ import "../common/system-ca" import "../common/prometheus-providers" +import * as Mobx from "mobx" +import * as LensExtensions from "../extensions/core-api"; import { app, dialog } from "electron" import { appName } from "../common/vars"; import path from "path" @@ -17,16 +19,9 @@ import { clusterStore } from "../common/cluster-store" import { userStore } from "../common/user-store"; import { workspaceStore } from "../common/workspace-store"; import { appEventBus } from "../common/event-bus" -import * as LensExtensions from "../extensions/core-api"; import { extensionManager } from "../extensions/extension-manager"; import { extensionLoader } from "../extensions/extension-loader"; import logger from "./logger" -import * as Mobx from "mobx" - -export { - LensExtensions, - Mobx -} const workingDir = path.join(app.getPath("appData"), appName); app.setName(appName); @@ -34,7 +29,6 @@ if (!process.env.CICD) { app.setPath("userData", workingDir); } -let windowManager: WindowManager; let clusterManager: ClusterManager; let proxyServer: LensProxy; @@ -82,7 +76,7 @@ async function main() { } // create window manager and open app - windowManager = new WindowManager(proxyPort); + LensExtensionsApi.windowManager = new WindowManager(proxyPort); extensionLoader.loadOnMain() extensionLoader.extensions.replace(await extensionManager.load()) @@ -101,3 +95,13 @@ app.on("will-quit", async (event) => { if (clusterManager) clusterManager.stop() app.exit(); }) + +// Extensions-api runtime exports +export const LensExtensionsApi = { + ...LensExtensions, +}; + +export { + Mobx, + LensExtensionsApi as LensExtensions, +}