fix(nav): DRY Nav render method

This commit is contained in:
Stuart Taylor
2018-03-13 20:35:30 +00:00
parent c80e98a9a4
commit 86b19031e9

View File

@ -62,6 +62,12 @@ function mergeProps(stateProps, dispatchProps, ownProps) {
}; };
} }
const allNavs = [
LargeNav,
MediumNav,
SmallNav
];
function FCCNav(props) { function FCCNav(props) {
const { const {
panes, panes,
@ -69,30 +75,24 @@ function FCCNav(props) {
clickOnMap, clickOnMap,
shouldShowMapButton shouldShowMapButton
} = props; } = props;
const withNavProps = Component => (
<Component
clickOnLogo={ clickOnLogo }
clickOnMap={ clickOnMap }
key={ Component.displayName }
panes={ panes }
shouldShowMapButton={ shouldShowMapButton }
/>
);
return ( return (
<Navbar <Navbar
className='nav-height' className='nav-height'
id='navbar' id='navbar'
staticTop={ true } staticTop={ true }
> >
<LargeNav {
clickOnLogo={ clickOnLogo } allNavs.map(withNavProps)
clickOnMap={ clickOnMap } }
panes={ panes }
shouldShowMapButton={ shouldShowMapButton }
/>
<MediumNav
clickOnLogo={ clickOnLogo }
clickOnMap={ clickOnMap }
panes={ panes }
shouldShowMapButton={ shouldShowMapButton }
/>
<SmallNav
clickOnLogo={ clickOnLogo }
clickOnMap={ clickOnMap }
panes={ panes }
shouldShowMapButton={ shouldShowMapButton }
/>
</Navbar> </Navbar>
); );
} }