WIP: Search form in header bar
This commit is contained in:
@@ -1,34 +1,68 @@
|
||||
import React from 'react';
|
||||
import classNames from 'classnames';
|
||||
import Branding from './Branding';
|
||||
import Link from './Link';
|
||||
import LogoLink from './LogoLink';
|
||||
import Search from './Search';
|
||||
import { getItemPageNames } from '../../common/config';
|
||||
|
||||
export default function Header({ pageName }) {
|
||||
class Header extends React.Component {
|
||||
constructor(...args) {
|
||||
super(...args);
|
||||
this.state = {
|
||||
searchOpen: false,
|
||||
};
|
||||
}
|
||||
|
||||
const smallLogo = pageName !== 'index';
|
||||
openSearch = () => {
|
||||
this.setState({
|
||||
searchOpen: true,
|
||||
});
|
||||
}
|
||||
|
||||
return (
|
||||
<Branding
|
||||
logoContent={<LogoLink small={smallLogo} />}
|
||||
>
|
||||
<div className="nav">
|
||||
<div className="nav__item">
|
||||
<Link pageName="help" className="icon-link">
|
||||
<span className="icon icon--question icon-link__icon"></span>How to Use Technology Radar?
|
||||
</Link>
|
||||
closeSearch = () => {
|
||||
this.setState({
|
||||
searchOpen: false,
|
||||
});
|
||||
}
|
||||
|
||||
handleOpenClick = (e) => {
|
||||
e.preventDefault();
|
||||
this.openSearch();
|
||||
}
|
||||
|
||||
render() {
|
||||
const { pageName } = this.props;
|
||||
const { searchOpen } = this.state;
|
||||
const smallLogo = pageName !== 'index';
|
||||
|
||||
return (
|
||||
<Branding
|
||||
logoContent={<LogoLink small={smallLogo} />}
|
||||
>
|
||||
<div className="nav">
|
||||
<div className="nav__item">
|
||||
<Link pageName="help" className="icon-link">
|
||||
<span className="icon icon--question icon-link__icon"></span>How to Use Technology Radar?
|
||||
</Link>
|
||||
</div>
|
||||
<div className="nav__item">
|
||||
<Link pageName="overview" className="icon-link">
|
||||
<span className="icon icon--overview icon-link__icon"></span>Technologies Overview
|
||||
</Link>
|
||||
</div>
|
||||
<div className="nav__item">
|
||||
<a className="icon-link" href="#" onClick={this.handleOpenClick}>
|
||||
<span className="icon icon--search icon-link__icon"></span>Search
|
||||
</a>
|
||||
<div className={classNames('nav__search', { 'is-open': searchOpen })}>
|
||||
<Search onClose={this.closeSearch} open={searchOpen} />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="nav__item">
|
||||
<Link pageName="overview" className="icon-link">
|
||||
<span className="icon icon--overview icon-link__icon"></span>Technologies Overview
|
||||
</Link>
|
||||
</div>
|
||||
<div className="nav__item">
|
||||
<a className="icon-link" href="#todo">
|
||||
<span className="icon icon--search icon-link__icon"></span>Search
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</Branding>
|
||||
);
|
||||
</Branding>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
export default Header;
|
||||
|
||||
Reference in New Issue
Block a user