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

refactor/remove Cluster#frameId

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
This commit is contained in:
Jari Kolehmainen 2020-11-19 09:12:19 +02:00
parent ea2b67f061
commit 43e361727f
4 changed files with 15 additions and 12 deletions

View File

@ -3,12 +3,14 @@ import { ClusterId, clusterStore } from "./cluster-store";
import { appEventBus } from "./event-bus" import { appEventBus } from "./event-bus"
import { ResourceApplier } from "../main/resource-applier"; import { ResourceApplier } from "../main/resource-applier";
import { ipcMain } from "electron"; import { ipcMain } from "electron";
import { observable } from "mobx";
export const clusterActivateHandler = "cluster:activate" export const clusterActivateHandler = "cluster:activate"
export const clusterSetFrameIdHandler = "cluster:set-frame-id" export const clusterSetFrameIdHandler = "cluster:set-frame-id"
export const clusterRefreshHandler = "cluster:refresh" export const clusterRefreshHandler = "cluster:refresh"
export const clusterDisconnectHandler = "cluster:disconnect" export const clusterDisconnectHandler = "cluster:disconnect"
export const clusterKubectlApplyAllHandler = "cluster:kubectl-apply-all" export const clusterKubectlApplyAllHandler = "cluster:kubectl-apply-all"
export const clusterFrameMap = observable.map<ClusterId, number>();
if (ipcMain) { if (ipcMain) {
handleRequest(clusterActivateHandler, (event, clusterId: ClusterId, force = false) => { handleRequest(clusterActivateHandler, (event, clusterId: ClusterId, force = false) => {
@ -18,10 +20,10 @@ if (ipcMain) {
} }
}) })
handleRequest(clusterSetFrameIdHandler, (event, clusterId: ClusterId, frameId?: number) => { handleRequest(clusterSetFrameIdHandler, (event, clusterId: ClusterId, frameId: number) => {
const cluster = clusterStore.getById(clusterId); const cluster = clusterStore.getById(clusterId);
if (cluster) { if (cluster) {
if (frameId) cluster.frameId = frameId; // save cluster's webFrame.routingId to be able to send push-updates clusterFrameMap.set(cluster.id, frameId)
return cluster.pushState(); return cluster.pushState();
} }
}) })
@ -33,7 +35,11 @@ if (ipcMain) {
handleRequest(clusterDisconnectHandler, (event, clusterId: ClusterId) => { handleRequest(clusterDisconnectHandler, (event, clusterId: ClusterId) => {
appEventBus.emit({name: "cluster", action: "stop"}); appEventBus.emit({name: "cluster", action: "stop"});
return clusterStore.getById(clusterId)?.disconnect(); const cluster = clusterStore.getById(clusterId);
if (cluster) {
cluster.disconnect();
clusterFrameMap.delete(cluster.id)
}
}) })
handleRequest(clusterKubectlApplyAllHandler, (event, clusterId: ClusterId, resources: string[]) => { handleRequest(clusterKubectlApplyAllHandler, (event, clusterId: ClusterId, resources: string[]) => {

View File

@ -2,8 +2,9 @@
// https://www.electronjs.org/docs/api/ipc-main // https://www.electronjs.org/docs/api/ipc-main
// https://www.electronjs.org/docs/api/ipc-renderer // https://www.electronjs.org/docs/api/ipc-renderer
import { ipcMain, ipcRenderer, webContents, remote } from "electron" import { ipcMain, ipcRenderer, webContents, remote } from "electron";
import logger from "../main/logger"; import logger from "../main/logger";
import { clusterFrameMap } from "./cluster-ipc";
export function handleRequest(channel: string, listener: (...args: any[]) => any) { export function handleRequest(channel: string, listener: (...args: any[]) => any) {
ipcMain.handle(channel, listener) ipcMain.handle(channel, listener)
@ -15,11 +16,8 @@ export async function requestMain(channel: string, ...args: any[]) {
async function getSubFrames(): Promise<number[]> { async function getSubFrames(): Promise<number[]> {
const subFrames: number[] = []; const subFrames: number[] = [];
const { clusterStore } = await import("./cluster-store"); clusterFrameMap.forEach((frameId, _) => {
clusterStore.clustersList.forEach(cluster => { subFrames.push(frameId)
if (cluster.frameId) {
subFrames.push(cluster.frameId)
}
}); });
return subFrames; return subFrames;
} }

View File

@ -50,7 +50,6 @@ export interface ClusterState {
export class Cluster implements ClusterModel, ClusterState { export class Cluster implements ClusterModel, ClusterState {
public id: ClusterId; public id: ClusterId;
public frameId: number;
public kubeCtl: Kubectl public kubeCtl: Kubectl
public contextHandler: ContextHandler; public contextHandler: ContextHandler;
public ownerRef: string; public ownerRef: string;

View File

@ -1,5 +1,4 @@
import type { ClusterId } from "../common/cluster-store"; import type { ClusterId } from "../common/cluster-store";
import { clusterStore } from "../common/cluster-store";
import { observable } from "mobx"; import { observable } from "mobx";
import { app, BrowserWindow, dialog, shell, webContents } from "electron" import { app, BrowserWindow, dialog, shell, webContents } from "electron"
import windowStateKeeper from "electron-window-state" import windowStateKeeper from "electron-window-state"
@ -8,6 +7,7 @@ import { subscribeToBroadcast } from "../common/ipc"
import { initMenu } from "./menu"; import { initMenu } from "./menu";
import { initTray } from "./tray"; import { initTray } from "./tray";
import { Singleton } from "../common/utils"; import { Singleton } from "../common/utils";
import { clusterFrameMap } from "../common/cluster-ipc";
export class WindowManager extends Singleton { export class WindowManager extends Singleton {
protected mainWindow: BrowserWindow; protected mainWindow: BrowserWindow;
@ -130,7 +130,7 @@ export class WindowManager extends Singleton {
} }
reload() { reload() {
const frameId = clusterStore.getById(this.activeClusterId)?.frameId; const frameId = clusterFrameMap.get(this.activeClusterId)
if (frameId) { if (frameId) {
this.sendToView({ channel: "renderer:reload", frameId }); this.sendToView({ channel: "renderer:reload", frameId });
} else { } else {