diff --git a/src/renderer/components/app.tsx b/src/renderer/components/app.tsx index 0f37c049c3..9424d68219 100755 --- a/src/renderer/components/app.tsx +++ b/src/renderer/components/app.tsx @@ -1,6 +1,6 @@ import React from "react"; import { computed, observable, reaction } from "mobx"; -import { disposeOnUnmount } from "mobx-react"; +import { disposeOnUnmount, observer } from "mobx-react"; import { Redirect, Route, Router, Switch } from "react-router"; import { history } from "../navigation"; import { Notifications } from "./notifications"; @@ -212,8 +212,8 @@ export class App extends React.Component { - {this.renderExtensionTabLayoutRoutes()} - {this.renderExtensionRoutes()} + + @@ -233,3 +233,59 @@ 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 ; + } + } + }); + } +}