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"; import { supportPageURL } from "./src/support.route";
export default class SupportPageMainExtension extends LensMainExtension { export default class SupportPageMainExtension extends LensMainExtension {
@ -11,9 +11,11 @@ export default class SupportPageMainExtension extends LensMainExtension {
registry.add({ registry.add({
parentId: "help", parentId: "help",
label: "Support", label: "Support",
async click() { click() {
// fixme: require runtime windowManager (ensureMainWindow + navigate for main) windowManager.navigate({
console.log(`navigate: ${supportPageURL()}`); 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-main-extension"
export * from "../lens-renderer-extension" export * from "../lens-renderer-extension"
import type { WindowManager } from "../../main/window-manager";
// APIs // APIs
import * as EventBus from "./event-bus" import * as EventBus from "./event-bus"
import * as Store from "./stores" import * as Store from "./stores"
@ -9,6 +11,8 @@ import * as Util from "./utils"
import * as Registry from "../registries" import * as Registry from "../registries"
import * as CommonVars from "../../common/vars"; import * as CommonVars from "../../common/vars";
export let windowManager: WindowManager;
export { export {
EventBus, EventBus,
Store, Store,

View File

@ -2,6 +2,8 @@
import "../common/system-ca" import "../common/system-ca"
import "../common/prometheus-providers" import "../common/prometheus-providers"
import * as Mobx from "mobx"
import * as LensExtensions from "../extensions/core-api";
import { app, dialog } from "electron" import { app, dialog } from "electron"
import { appName } from "../common/vars"; import { appName } from "../common/vars";
import path from "path" import path from "path"
@ -17,16 +19,9 @@ import { clusterStore } from "../common/cluster-store"
import { userStore } from "../common/user-store"; import { userStore } from "../common/user-store";
import { workspaceStore } from "../common/workspace-store"; import { workspaceStore } from "../common/workspace-store";
import { appEventBus } from "../common/event-bus" import { appEventBus } from "../common/event-bus"
import * as LensExtensions from "../extensions/core-api";
import { extensionManager } from "../extensions/extension-manager"; import { extensionManager } from "../extensions/extension-manager";
import { extensionLoader } from "../extensions/extension-loader"; import { extensionLoader } from "../extensions/extension-loader";
import logger from "./logger" import logger from "./logger"
import * as Mobx from "mobx"
export {
LensExtensions,
Mobx
}
const workingDir = path.join(app.getPath("appData"), appName); const workingDir = path.join(app.getPath("appData"), appName);
app.setName(appName); app.setName(appName);
@ -34,7 +29,6 @@ if (!process.env.CICD) {
app.setPath("userData", workingDir); app.setPath("userData", workingDir);
} }
let windowManager: WindowManager;
let clusterManager: ClusterManager; let clusterManager: ClusterManager;
let proxyServer: LensProxy; let proxyServer: LensProxy;
@ -82,7 +76,7 @@ async function main() {
} }
// create window manager and open app // create window manager and open app
windowManager = new WindowManager(proxyPort); LensExtensionsApi.windowManager = new WindowManager(proxyPort);
extensionLoader.loadOnMain() extensionLoader.loadOnMain()
extensionLoader.extensions.replace(await extensionManager.load()) extensionLoader.extensions.replace(await extensionManager.load())
@ -101,3 +95,13 @@ app.on("will-quit", async (event) => {
if (clusterManager) clusterManager.stop() if (clusterManager) clusterManager.stop()
app.exit(); app.exit();
}) })
// Extensions-api runtime exports
export const LensExtensionsApi = {
...LensExtensions,
};
export {
Mobx,
LensExtensionsApi as LensExtensions,
}