Remove windowManager from extension api (#1323)

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
This commit is contained in:
Jari Kolehmainen authored and GitHub committed 2020-11-11 21:55:49 +02:00
1 parent 6a908cb528
commit 00be4aa184
11 files changed
+31 -16

No files matched your search

-5
View File
@@ -2,8 +2,6 @@
export * from "../lens-main-extension"
export * from "../lens-renderer-extension"
import type { WindowManager } from "../../main/window-manager";
// APIs
import * as App from "./app"
import * as EventBus from "./event-bus"
@@ -12,9 +10,6 @@ import * as Util from "./utils"
import * as ClusterFeature from "./cluster-feature"
import * as Interface from "../interfaces"
// TODO: allow to expose windowManager.navigate() as Navigation.navigate() in runtime
export let windowManager: WindowManager;
export {
App,
EventBus,
+5
View File
@@ -1,7 +1,12 @@
import type { MenuRegistration } from "./registries/menu-registry";
import { observable } from "mobx";
import { LensExtension } from "./lens-extension"
import { WindowManager } from "../main/window-manager";
export class LensMainExtension extends LensExtension {
@observable.shallow appMenus: MenuRegistration[] = []
async navigate(location: string, frameId?: number) {
await WindowManager.getInstance<WindowManager>().navigate(location, frameId)
}
}
+1 -1
View File
@@ -8,5 +8,5 @@ import * as Navigation from "./navigation"
export {
Component,
K8sApi,
Navigation,
Navigation
}
+2 -1
View File
@@ -1,3 +1,4 @@
export { navigate, hideDetails, showDetails, getDetailsUrl } from "../../renderer/navigation"
export { navigate } from "../../renderer/navigation";
export { hideDetails, showDetails, getDetailsUrl } from "../../renderer/navigation"
export { RouteProps } from "react-router"
export { IURLParams } from "../../common/utils/buildUrl";
+1 -1
View File
@@ -78,7 +78,7 @@ app.on("ready", async () => {
app.exit();
}
LensExtensionsApi.windowManager = windowManager = new WindowManager(proxyPort);
windowManager = WindowManager.getInstance<WindowManager>(proxyPort);
extensionLoader.init(await extensionManager.load()); // call after windowManager to see splash earlier
setTimeout(() => {
+1 -1
View File
@@ -16,7 +16,7 @@ import { isDevelopment } from "../common/vars";
export let tray: Tray;
// refresh icon when MacOS dark/light theme has changed
nativeTheme.on("updated", () => tray?.setImage(getTrayIcon()));
nativeTheme?.on("updated", () => tray?.setImage(getTrayIcon()));
export function getTrayIcon(isDark = nativeTheme.shouldUseDarkColors): string {
return path.resolve(
+3 -1
View File
@@ -7,8 +7,9 @@ import { extensionLoader } from "../extensions/extension-loader";
import { appEventBus } from "../common/event-bus"
import { initMenu } from "./menu";
import { initTray } from "./tray";
import { Singleton } from "../common/utils";
export class WindowManager {
export class WindowManager extends Singleton {
protected mainWindow: BrowserWindow;
protected splashWindow: BrowserWindow;
protected windowState: windowStateKeeper.State;
@@ -17,6 +18,7 @@ export class WindowManager {
@observable activeClusterId: ClusterId;
constructor(protected proxyPort: number) {
super();
this.bindEvents();
this.initMenu();
this.initTray();
+9
View File
@@ -11,6 +11,9 @@ import { clusterViewRoute, IClusterViewRouteParams } from "./components/cluster-
export const history = typeof window !== "undefined" ? createBrowserHistory() : createMemoryHistory();
export const navigation = createObservableHistory(history);
/**
* Navigate to a location. Works only in renderer.
*/
export function navigate(location: LocationDescriptor) {
const currentLocation = navigation.getPath();
navigation.push(location);
@@ -60,6 +63,9 @@ export function getDetailsUrl(details: string) {
});
}
/**
* Show details. Works only in renderer.
*/
export function showDetails(path: string, resetSelected = true) {
navigation.searchParams.merge({
details: path,
@@ -67,6 +73,9 @@ export function showDetails(path: string, resetSelected = true) {
})
}
/**
* Hide details. Works only in renderer.
*/
export function hideDetails() {
showDetails(null)
}