Skip to content

Commit

Permalink
Nav: Fix small issues.
Browse files Browse the repository at this point in the history
Fixes #111

Signed-off-by: Nisar Hassan Naqvi <[email protected]>
  • Loading branch information
nisarhassan12 committed May 17, 2020
1 parent d00a03e commit 272dab9
Showing 1 changed file with 73 additions and 62 deletions.
135 changes: 73 additions & 62 deletions src/components/Nav.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import React from 'react'
import React, { useState, useEffect } from 'react'
import { Link } from 'gatsby'
import styled from '@emotion/styled'
import { Global, css } from '@emotion/core'
Expand All @@ -13,6 +13,10 @@ const StyledNav = styled.div`
top: 0;
left: 0;
right: 0;
.white {
background: #fff;
}
}
.nav {
Expand All @@ -24,15 +28,6 @@ const StyledNav = styled.div`
@media(max-width: ${breakpoints.xmd}) {
flex-direction: column;
padding-top: 0;
.navIsRendered {
display: flex;
}
.navIsNotRendered {
display: none;
}
&__header {
display: flex;
justify-content: space-between;
Expand Down Expand Up @@ -78,6 +73,10 @@ const StyledNav = styled.div`
width: 100%;
z-index: 1000;
@media(min-width: ${breakpoints.xmd}) {
padding-top: 2.5rem;
}
@media(max-width: ${breakpoints.xmd}) {
height: 95vh;
flex-direction: column;
Expand Down Expand Up @@ -143,67 +142,79 @@ const StyledNav = styled.div`
.active {
color: ${colors.blue};
}
`

class Nav extends React.Component {
state = {
isNavRendered: false,
@media(max-width: ${breakpoints.xmd}) {
.shown {
display: flex;
}
.hidden {
display: none;
}
}
`

const Nav = ({ shouldRenderLogo }) => {
const [isNavRendered, setIsNavRendered] = useState(false)

toggleNavigation = () => {
this.setState({ isNavRendered: !this.state.isNavRendered })
const toggleNavigation = () => {
setIsNavRendered(!isNavRendered)
}

render() {
const { shouldRenderLogo } = this.props
return (
<StyledNav>
<Global
styles={css`
return (
<StyledNav>
<Global
styles={css`
html {
overflow-y: ${this.state.isNavRendered ? 'hidden' : 'scroll'};
overflow-y: ${isNavRendered ? 'hidden' : 'scroll'};
}
`}
/>
<nav className="nav" style={ this.state.isNavRendered ? { background: '#fff', height: '100vh' } : {} }>
<div className="nav__header">
{ shouldRenderLogo ?
<Link to="/" className="logo-container">
<img className="logo" src={TheiaLogoDark} alt="theia logo" />
</Link>: <span aria-hidden={true}>&nbsp;</span>
}
<div className="nav__button-container">
<button
className="nav__button"
aria-label="Navigation Toggle"
onClick={this.toggleNavigation}
>
{this.state.isNavRendered ? <img src={Multiply} alt="close menu icon" /> : <img src={Hamburger} alt="hamburger menu icon" />}
</button>
</div>
/>
<nav className={`${isNavRendered ? 'white' : ''}`}>
<div className="nav__header">
{shouldRenderLogo ?
<Link to="/" className="logo-container">
<img className="logo" src={TheiaLogoDark} alt="theia logo" />
</Link> : <span aria-hidden={true}>&nbsp;</span>
}
<div className="nav__button-container">
<button
className="nav__button"
aria-label="Navigation Toggle"
onClick={toggleNavigation}
>
{isNavRendered ? <img src={Multiply} alt="close menu icon" /> : <img src={Hamburger} alt="hamburger menu icon" />}
</button>
</div>
<ul className={`nav__items ${this.state.isNavRendered ? 'navIsRendered' : 'navIsNotRendered' }`}>
<li className="nav__item">
<Link to="/#features" className="nav__link">Features</Link>
</li>
<li className="nav__item">
<Link to="/docs/" className="nav__link" activeClassName="active">Documentation</Link>
</li>
<li className="nav__item">
<a href="https://spectrum.chat/theia" target="_blank" rel="noopener" className="nav__link">Community</a>
</li>
<li className="nav__item">
<a href="https://www.typefox.io/theia/" className="nav__link" target="_blank" rel="noopener">Support</a>
</li>
<li className="nav__item">
<a href="https://www.typefox.io/trainings/" className="nav__link" target="_blank" rel="noopener">Training</a>
</li>
</ul>
</nav>
</StyledNav>
)
}
</div>
<ul className={`nav__items ${isNavRendered ? 'shown' : 'hidden'}`}>
<li className="nav__item">
<Link
to="/#features"
className="nav__link"
onClick={() => {
setIsNavRendered(false)
}}
>
Features
</Link>
</li>
<li className="nav__item">
<Link to="/docs/" className="nav__link" activeClassName="active">Documentation</Link>
</li>
<li className="nav__item">
<a href="https://spectrum.chat/theia" target="_blank" rel="noopener" className="nav__link">Community</a>
</li>
<li className="nav__item">
<a href="https://www.typefox.io/theia/" className="nav__link" target="_blank" rel="noopener">Support</a>
</li>
<li className="nav__item">
<a href="https://www.typefox.io/trainings/" className="nav__link" target="_blank" rel="noopener">Training</a>
</li>
</ul>
</nav>
</StyledNav>
)
}

export default Nav

0 comments on commit 272dab9

Please sign in to comment.