Skip to content

Commit 7757aa3

Browse files
ALau2088joaopapereira
authored andcommitted
add hamburger menu (AgileVentures#181)
* hamburgerMenu css * add window-test to package.json
1 parent 44e8ca5 commit 7757aa3

File tree

2 files changed

+75
-37
lines changed

2 files changed

+75
-37
lines changed

src/components/navbar/Navbar.css

Lines changed: 38 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,40 @@
11
.navbar {
22
background-color: #34495E !important;
3-
}
3+
}
4+
5+
/* Hamburger Menu */
6+
@media only screen and (max-width: 767px){
7+
.close{
8+
height: 0;
9+
-webkit-transition: 0.3s;
10+
transition: height 0.3s;
11+
overflow-y: hidden;
12+
}
13+
14+
.open{
15+
height: 400px;
16+
-webkit-transition: 0.3s;
17+
transition: 0.3s;
18+
overflow-y: visible;
19+
}
20+
21+
.hamburger {
22+
position: absolute;
23+
margin: 0px;
24+
padding: 3px 12px 0px 12px;
25+
right: 35px;
26+
top: 13px;
27+
box-sizing: border-box;
28+
border: 1.25px solid #fff;
29+
border-radius: 5px;
30+
text-align: center;
31+
text-indent: 0;
32+
}
33+
}
34+
35+
@media only screen and (min-width: 767px){
36+
.hamburger {
37+
display: none;
38+
}
39+
}
40+
/* Hamburger Menu End */

src/components/navbar/Navbar.js

Lines changed: 37 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,9 @@ import { Link } from 'react-router-dom'
44
import { withRouter } from 'react-router'
55
import logo from '../../images/av-logo.svg'
66
import './Navbar.css'
7+
78
export class Navbar extends Component {
9+
state = { showHamburgerMenu: false }
810
currentPath () {
911
// this.props.location.split("/") returns ["", ""] when on homepage
1012
// and ["", "users", "123"] when on /users/123
@@ -17,9 +19,16 @@ export class Navbar extends Component {
1719
this.props.cookies.remove('_WebsiteOne_session')
1820
}
1921

22+
toggleHamburgerMenu = () => {
23+
this.setState({
24+
showHamburgerMenu: !this.state.showHamburgerMenu
25+
})
26+
}
27+
2028
render () {
2129
const { cookies } = this.props
2230
const activeItem = this.currentPath()
31+
const menuView = this.state.showHamburgerMenu ? 'open' : 'close'
2332
return (
2433
<Menu stackable borderless inverted as='div' className='navbar'>
2534
<Container>
@@ -30,73 +39,65 @@ export class Navbar extends Component {
3039
</Link>
3140
</Menu.Item>
3241

33-
<Menu.Menu position='right'>
34-
<Menu.Item
35-
name='about'
36-
active={activeItem === 'about'}
37-
>
42+
<Menu.Menu position='right' className={`${menuView}`}>
43+
<Menu.Item name='about' active={activeItem === 'about'}>
3844
<Link to='/about'>About</Link>
3945
</Menu.Item>
4046

41-
<Menu.Item
42-
name='users'
43-
active={activeItem === 'users'}
44-
>
47+
<Menu.Item name='users' active={activeItem === 'users'}>
4548
<Link to='/users'>Users</Link>
4649
</Menu.Item>
4750

48-
<Menu.Item
49-
name='projects'
50-
active={activeItem === 'projects'}
51-
>
51+
<Menu.Item name='projects' active={activeItem === 'projects'}>
5252
<Link to='/projects'>Projects</Link>
5353
</Menu.Item>
5454

5555
<Menu.Item name='premium' active={activeItem === 'premium'}>
5656
<Link to='/membership-plans'>Premium</Link>
5757
</Menu.Item>
5858

59-
<Menu.Item
60-
name='events'
61-
active={activeItem === 'events'}
62-
>
59+
<Menu.Item name='events' active={activeItem === 'events'}>
6360
<Link to='/events'>Events</Link>
6461
</Menu.Item>
6562

66-
<Menu.Item name='getting-started' active={activeItem === 'getting-started'}>
67-
<Link to='/getting-started'>
68-
Getting Started
69-
</Link>
63+
<Menu.Item
64+
name='getting-started'
65+
active={activeItem === 'getting-started'}
66+
>
67+
<Link to='/getting-started'>Getting Started</Link>
7068
</Menu.Item>
71-
{!cookies.get('_WebsiteOne_session')
72-
? <Fragment>
73-
<Menu.Item
74-
name='login'
75-
active={activeItem === 'login'}
76-
>
69+
{!cookies.get('_WebsiteOne_session') ? (
70+
<Fragment>
71+
<Menu.Item name='login' active={activeItem === 'login'}>
7772
<Link to='/login'>Login</Link>
7873
</Menu.Item>
7974

80-
<Menu.Item
81-
name='signup'
82-
active={activeItem === 'signup'}
83-
>
75+
<Menu.Item name='signup' active={activeItem === 'signup'}>
8476
<Link to='/signup'>Sign up</Link>
8577
</Menu.Item>
8678
</Fragment>
87-
: <Menu.Item
88-
name='signout'
89-
active={activeItem === 'signout'}
90-
>
79+
) : (
80+
<Menu.Item name='signout' active={activeItem === 'signout'}>
9181
<Link to='/' onClick={this.handleRemoveCookies}>
9282
<Icon name='sign-out' />
9383
Log out
9484
</Link>
95-
</Menu.Item>}
85+
</Menu.Item>
86+
)}
9687
</Menu.Menu>
88+
<Link to='/'>
89+
<span className='hamburger' onClick={this.toggleHamburgerMenu}>
90+
<svg width='25' height='25'>
91+
<path d='M0,5 25,5' stroke='#fff' strokeWidth='1' />
92+
<path d='M0,13 25,13' stroke='#fff' strokeWidth='1' />
93+
<path d='M0,21 25,21' stroke='#fff' strokeWidth='1' />
94+
</svg>
95+
</span>
96+
</Link>
9797
</Container>
9898
</Menu>
9999
)
100100
}
101101
}
102+
102103
export default withRouter(Navbar)

0 commit comments

Comments
 (0)