mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
Signed-off-by: Roman <ixrock@gmail.com> Co-authored-by: Sebastian Malton <sebastian@malton.name> Co-authored-by: Sebastian Malton <smalton@mirantis.com> Co-authored-by: Lauri Nevala <lauri.nevala@gmail.com> Co-authored-by: Alex Andreev <alex.andreev.email@gmail.com>
47 lines
1.3 KiB
TypeScript
47 lines
1.3 KiB
TypeScript
import { reaction } from "mobx";
|
|
import { ipcRenderer } from "electron";
|
|
import { matchPath, RouteProps } from "react-router";
|
|
import { buildURL, navigation } from "../../navigation";
|
|
import { clusterStore, getHostedClusterId } from "../../../common/cluster-store";
|
|
import { clusterSettingsRoute } from "../+cluster-settings/cluster-settings.route";
|
|
|
|
export interface IClusterViewRouteParams {
|
|
clusterId: string;
|
|
}
|
|
|
|
export const clusterViewRoute: RouteProps = {
|
|
exact: true,
|
|
path: "/cluster/:clusterId",
|
|
}
|
|
|
|
export const clusterViewURL = buildURL<IClusterViewRouteParams>(clusterViewRoute.path)
|
|
|
|
export function getMatchedClusterId(): string {
|
|
const matched = matchPath<IClusterViewRouteParams>(navigation.location.pathname, {
|
|
exact: true,
|
|
path: [
|
|
clusterViewRoute.path,
|
|
clusterSettingsRoute.path,
|
|
].flat(),
|
|
})
|
|
if (matched) {
|
|
return matched.params.clusterId;
|
|
}
|
|
}
|
|
|
|
export function getMatchedCluster() {
|
|
return clusterStore.getById(getMatchedClusterId())
|
|
}
|
|
|
|
// Refresh global menu depending on active route's type (common/cluster view)
|
|
if (ipcRenderer) {
|
|
const isMainView = !getHostedClusterId();
|
|
if (isMainView) {
|
|
reaction(() => getMatchedClusterId(), clusterId => {
|
|
ipcRenderer.send("cluster-view:change", clusterId);
|
|
}, {
|
|
fireImmediately: true
|
|
})
|
|
}
|
|
}
|