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

handle navigation from main-extension's menu (Help -> Support)

Signed-off-by: Roman <ixrock@gmail.com>
This commit is contained in:
Roman 2020-10-22 15:09:47 +03:00
parent 6572fad1c8
commit a868a98c55
3 changed files with 23 additions and 13 deletions

View File

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

View File

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

View File

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