mirror of
https://github.com/lensapp/lens.git
synced 2025-05-20 05:10:56 +00:00
Fix extension cluster menu highlight/routing issues (#1459)
Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
This commit is contained in:
parent
43976f5bd9
commit
6e73c8ffc2
@ -100,7 +100,7 @@ export class App extends React.Component {
|
|||||||
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} path={tabRoutes.map((tab) => tab.routePath)} />;
|
||||||
} else {
|
} else {
|
||||||
const page = clusterPageRegistry.getByPageMenuTarget(menu.target);
|
const page = clusterPageRegistry.getByPageMenuTarget(menu.target);
|
||||||
if (page) {
|
if (page) {
|
||||||
|
|||||||
@ -98,23 +98,30 @@ export class Sidebar extends React.Component<Props> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
renderRegisteredMenus() {
|
renderRegisteredMenus() {
|
||||||
return clusterPageMenuRegistry.getRootItems().map((menuItem) => {
|
return clusterPageMenuRegistry.getRootItems().map((menuItem, index) => {
|
||||||
const registeredPage = clusterPageRegistry.getByPageMenuTarget(menuItem.target);
|
const registeredPage = clusterPageRegistry.getByPageMenuTarget(menuItem.target);
|
||||||
|
const tabRoutes = this.getTabLayoutRoutes(menuItem);
|
||||||
let pageUrl: string;
|
let pageUrl: string;
|
||||||
|
let routePath: 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;
|
routePath = registeredPage.routePath;
|
||||||
}
|
isActive = isActiveRoute(registeredPage.routePath);
|
||||||
const tabRoutes = this.getTabLayoutRoutes(menuItem);
|
} else if (tabRoutes.length > 0) {
|
||||||
if (!registeredPage && tabRoutes.length == 0) {
|
pageUrl = tabRoutes[0].url;
|
||||||
|
routePath = tabRoutes[0].routePath;
|
||||||
|
isActive = isActiveRoute(tabRoutes.map((tab) => tab.routePath));
|
||||||
|
} else {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
return (
|
return (
|
||||||
<SidebarNavItem
|
<SidebarNavItem
|
||||||
key={pageUrl} url={pageUrl}
|
key={"registered-item-" + index}
|
||||||
text={menuItem.title} icon={<menuItem.components.Icon/>}
|
url={pageUrl}
|
||||||
|
text={menuItem.title}
|
||||||
|
icon={<menuItem.components.Icon/>}
|
||||||
isActive={isActive}
|
isActive={isActive}
|
||||||
subMenus={tabRoutes}
|
subMenus={tabRoutes}
|
||||||
/>
|
/>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user