1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
This commit is contained in:
Jari Kolehmainen 2020-11-19 21:10:22 +02:00
parent c28e73d5fa
commit cd781c9f66
3 changed files with 16 additions and 16 deletions

View File

@ -49,21 +49,21 @@ export class ClusterPageMenuRegistry extends BaseRegistry<ClusterPageMenuRegistr
extensionId: ext.name, extensionId: ext.name,
...(menuItem.target || {}), ...(menuItem.target || {}),
}; };
return menuItem return menuItem;
}) });
return super.add(normalizedItems); return super.add(normalizedItems);
} }
getRootItems() { getRootItems() {
return this.getItems().filter((item) => !item.parentId) return this.getItems().filter((item) => !item.parentId);
} }
getSubItems(parent: ClusterPageMenuRegistration) { getSubItems(parent: ClusterPageMenuRegistration) {
return this.getItems().filter((item) => item.parentId === parent.id && item.target.extensionId === parent.target.extensionId) return this.getItems().filter((item) => item.parentId === parent.id && item.target.extensionId === parent.target.extensionId);
} }
getByPage(page: RegisteredPage) { getByPage(page: RegisteredPage) {
return this.getItems().find((item) => item.target?.pageId == page.id && item.target?.extensionId === page.extensionId) return this.getItems().find((item) => item.target?.pageId == page.id && item.target?.extensionId === page.extensionId);
} }
} }

View File

@ -97,18 +97,18 @@ export class App extends React.Component {
renderExtensionTabLayoutRoutes() { renderExtensionTabLayoutRoutes() {
return clusterPageMenuRegistry.getRootItems().map((menu, index) => { return clusterPageMenuRegistry.getRootItems().map((menu, index) => {
const tabRoutes = this.getTabLayoutRoutes(menu) const tabRoutes = this.getTabLayoutRoutes(menu);
if (tabRoutes.length > 0) { if (tabRoutes.length > 0) {
const pageComponent = () => <TabLayout tabs={tabRoutes} /> const pageComponent = () => <TabLayout tabs={tabRoutes} />;
return <Route key={"extension-tab-layout-route-" + index} component={pageComponent}/> return <Route key={"extension-tab-layout-route-" + index} component={pageComponent}/>;
} else { } else {
const page = clusterPageRegistry.getByPageMenuTarget(menu.target) const page = clusterPageRegistry.getByPageMenuTarget(menu.target);
if (page) { if (page) {
const pageComponent = () => <page.components.Page /> const pageComponent = () => <page.components.Page />;
return <Route key={"extension-tab-layout-route-" + index} path={page.routePath} exact={page.exact} component={pageComponent}/> return <Route key={"extension-tab-layout-route-" + index} path={page.routePath} exact={page.exact} component={pageComponent}/>;
} }
} }
}) });
} }
renderExtensionRoutes() { renderExtensionRoutes() {

View File

@ -214,16 +214,16 @@ export class Sidebar extends React.Component<Props> {
</SidebarNavItem> </SidebarNavItem>
{clusterPageMenuRegistry.getRootItems().map((menuItem) => { {clusterPageMenuRegistry.getRootItems().map((menuItem) => {
const registeredPage = clusterPageRegistry.getByPageMenuTarget(menuItem.target); const registeredPage = clusterPageRegistry.getByPageMenuTarget(menuItem.target);
let pageUrl: string let pageUrl: string;
let isActive = false let isActive = false;
if (registeredPage) { if (registeredPage) {
const { extensionId, id: pageId } = registeredPage; const { extensionId, id: pageId } = registeredPage;
pageUrl = getExtensionPageUrl({ extensionId, pageId, params: menuItem.target.params }); pageUrl = getExtensionPageUrl({ extensionId, pageId, params: menuItem.target.params });
isActive = pageUrl === navigation.location.pathname; isActive = pageUrl === navigation.location.pathname;
} }
const tabRoutes = this.getTabLayoutRoutes(menuItem) const tabRoutes = this.getTabLayoutRoutes(menuItem);
if (!registeredPage && tabRoutes.length == 0) { if (!registeredPage && tabRoutes.length == 0) {
return return;
} }
return ( return (
<SidebarNavItem <SidebarNavItem