public/components/navigation.react.js (36 lines of code) (raw):
import React from 'react';
import * as R from 'ramda';
import { Link } from 'react-router';
import { Navbar, Nav, NavItem, NavDropdown, MenuItem } from 'react-bootstrap'
export default class NavigationComponent extends React.Component {
constructor(props) {
super(props);
}
render () {
const allContentSources = this.props.data;
const distinctKeys = R.uniq(allContentSources.map(R.prop('id')));
const contentSourceNodes = distinctKeys.map( itemKey => {
const contentSource = R.find(R.propEq('id', itemKey), allContentSources);
const appName = R.prop('appName', contentSource);
const environment = R.prop('environment', contentSource);
const route = '#/reindex/' + itemKey + '/environment/' + environment;
return (
<MenuItem eventKey={itemKey} key={itemKey} href={route}>{appName}</MenuItem>
);
});
return (
<Navbar inverse>
<Navbar.Header>
<Navbar.Brand><Link className="navbar-brand" to="/">Floodgate</Link></Navbar.Brand>
<Navbar.Toggle />
</Navbar.Header>
<Navbar.Collapse>
<Nav>
<NavItem eventKey={1} href="#/register">Register</NavItem>
<NavItem eventKey={2} href="#/bulk">Bulk Reindexer</NavItem>
<NavDropdown eventKey={3} title="Content sources" id="nav-content-source-dropdown">
{contentSourceNodes}
</NavDropdown>
</Nav>
</Navbar.Collapse>
</Navbar>
);
}
}