docs(website): convert docs mobile nav from select to nav element and list (#1696)
* website: redo mobile nav to use Link and be rid of select input * fix react className prop * add zebapy to contributors * website: upgrade gatsby deps to release candidate * fix lint
This commit is contained in:
@ -1,26 +1,49 @@
|
||||
import React, { Component } from 'react';
|
||||
import { Link } from 'gatsby';
|
||||
|
||||
class MobileNav extends Component {
|
||||
handleChange = event => {
|
||||
this.props.history.push(event.target.value);
|
||||
state = {
|
||||
isOpen: false,
|
||||
};
|
||||
toggleNav = () => {
|
||||
this.setState({
|
||||
isOpen: !this.state.isOpen,
|
||||
});
|
||||
};
|
||||
render() {
|
||||
const { items } = this.props;
|
||||
const { isOpen } = this.state;
|
||||
|
||||
return (
|
||||
<div className="mobile docs-nav">
|
||||
<select className="btn-primary" onChange={this.handleChange}>
|
||||
<option>Select A Topic</option>
|
||||
{items.map(item => (
|
||||
<optgroup label={item.title} key={item.title}>
|
||||
{item.group.edges.map(({ node }) => (
|
||||
<option value={node.fields.slug} key={node.fields.slug} className="nav-link">
|
||||
{node.frontmatter.title}
|
||||
</option>
|
||||
<div className="mobile-docs-nav">
|
||||
<button className="btn-primary mobile-docs-nav-btn" onClick={this.toggleNav}>
|
||||
{isOpen ? <span>×</span> : <span>☰</span>} {isOpen ? 'Hide' : 'Show'}{' '}
|
||||
Navigation
|
||||
</button>
|
||||
{isOpen && (
|
||||
<nav className="mobile-docs-nav-content">
|
||||
<ul className="mobile-docs-nav-list">
|
||||
{items.map(item => (
|
||||
<li key={item.title} className="mobile-docs-nav-item">
|
||||
{item.title}
|
||||
<ul className="mobile-docs-nav-list">
|
||||
{item.group.edges.map(({ node }) => (
|
||||
<li key={node.fields.slug} className="mobile-docs-nav-item">
|
||||
<Link
|
||||
to={node.fields.slug}
|
||||
className="mobile-docs-nav-link"
|
||||
onClick={this.toggleNav}
|
||||
>
|
||||
{node.frontmatter.title}
|
||||
</Link>
|
||||
</li>
|
||||
))}
|
||||
</ul>
|
||||
</li>
|
||||
))}
|
||||
</optgroup>
|
||||
))}
|
||||
</select>
|
||||
</ul>
|
||||
</nav>
|
||||
)}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
Reference in New Issue
Block a user