diff --git a/src/renderer/components/app.tsx b/src/renderer/components/app.tsx
index 8a5bcf5cdd..eba890ff3f 100755
--- a/src/renderer/components/app.tsx
+++ b/src/renderer/components/app.tsx
@@ -51,6 +51,7 @@ import { CommandContainer } from "./command-palette/command-container";
import { KubeObjectStore } from "../kube-object.store";
import { clusterContext } from "./context";
+@observer
export class App extends React.Component {
static async init() {
const frameId = webFrame.routingId;
@@ -90,19 +91,21 @@ export class App extends React.Component {
reaction(() => this.warningsTotal, (count: number) => {
broadcastMessage(`cluster-warning-event-count:${getHostedCluster().id}`, count);
}),
+
+ reaction(getHostedCluster, () => {
+ this.setStartUrl();
+ })
]);
}
+ @observable startUrl: string = clusterURL();
+
@computed get warningsTotal(): number {
return nodesStore.getWarningsCount() + eventStore.getWarningsCount();
}
- get startURL() {
- if (isAllowedResource(["events", "nodes", "pods"])) {
- return clusterURL();
- }
-
- return workloadsURL();
+ setStartUrl() {
+ this.startUrl = isAllowedResource(["events", "nodes", "pods"]) ? clusterURL() : workloadsURL();
}
getTabLayoutRoutes(menuItem: ClusterPageMenuRegistration) {
@@ -156,14 +159,11 @@ export class App extends React.Component {
}
render() {
- const cluster = getHostedCluster();
-
return (
-
@@ -175,8 +175,9 @@ export class App extends React.Component {
-
-
+ {this.renderExtensionTabLayoutRoutes()}
+ {this.renderExtensionRoutes()}
+
@@ -189,65 +190,9 @@ export class App extends React.Component {
-
+
);
}
}
-
-@observer
-class ExtensionRoutes extends React.Component {
- render() {
- return clusterPageRegistry.getItems().map((page, index) => {
- const menu = clusterPageMenuRegistry.getByPage(page);
-
- if (!menu) {
- return ;
- }
- });
- }
-}
-
-@observer
-class ExtensionTabLayoutRoutes extends React.Component {
- getTabLayoutRoutes(menuItem: ClusterPageMenuRegistration) {
- const routes: TabLayoutRoute[] = [];
-
- if (!menuItem.id) {
- return routes;
- }
- clusterPageMenuRegistry.getSubItems(menuItem).forEach((subMenu) => {
- const page = clusterPageRegistry.getByPageTarget(subMenu.target);
-
- if (page) {
- routes.push({
- routePath: page.url,
- url: getExtensionPageUrl(subMenu.target),
- title: subMenu.title,
- component: page.components.Page,
- });
- }
- });
-
- return routes;
- }
-
- render() {
- return clusterPageMenuRegistry.getRootItems().map((menu, index) => {
- const tabRoutes = this.getTabLayoutRoutes(menu);
-
- if (tabRoutes.length > 0) {
- const pageComponent = () => ;
-
- return tab.routePath)}/>;
- } else {
- const page = clusterPageRegistry.getByPageTarget(menu.target);
-
- if (page) {
- return ;
- }
- }
- });
- }
-}