Introduce dedicated component for secondary navigation

This commit is contained in:
René Pfeuffer
2020-03-11 13:25:53 +01:00
parent d4a3d52f04
commit 163b1be93b
2 changed files with 46 additions and 0 deletions

View File

@@ -0,0 +1,45 @@
import React, { ReactElement, ReactNode } from "react";
import { MenuContext } from "./MenuContext";
import SubNavigation from "./SubNavigation";
import NavLink from "./NavLink";
type Props = {
to: string;
icon: string;
label: string;
title: string;
activeWhenMatch?: (route: any) => boolean;
activeOnlyWhenExact?: boolean;
children?: ReactElement[];
};
export default class SecondaryNavigation extends React.Component<Props> {
render() {
const { to, icon, label, title, activeWhenMatch, activeOnlyWhenExact, children } = this.props;
if (children) {
return (
<MenuContext.Consumer>
{({ menuCollapsed }) => (
<SubNavigation
to={to}
icon={icon}
label={label}
title={title}
activeWhenMatch={activeWhenMatch}
activeOnlyWhenExact={activeOnlyWhenExact}
collapsed={menuCollapsed}
>
{children}
</SubNavigation>
)}
</MenuContext.Consumer>
);
} else {
return (
<MenuContext.Consumer>
{({ menuCollapsed }) => <NavLink to={to} icon={icon} label={label} title={title} collapsed={menuCollapsed} />}
</MenuContext.Consumer>
);
}
}
}

View File

@@ -8,3 +8,4 @@ export { default as PrimaryNavigation } from "./PrimaryNavigation";
export { default as PrimaryNavigationLink } from "./PrimaryNavigationLink";
export { default as Section } from "./Section";
export { MenuContext, storeMenuCollapsed, isMenuCollapsed } from "./MenuContext";
export { default as SecondaryNavigation } from "./SecondaryNavigation";