diff --git a/client/src/views/layout/header/LoggedIn.js b/client/src/views/layout/header/LoggedIn.js
index 2bda15736..902257382 100644
--- a/client/src/views/layout/header/LoggedIn.js
+++ b/client/src/views/layout/header/LoggedIn.js
@@ -4,7 +4,7 @@ import { Link } from 'react-router-dom'
import { isDefined } from '../../../utils/js-helpers'
export const LoggedIn = props => {
- let { user, auth } = props
+ let { user, auth, openedMenu, toggleMenuOpen, closeAll } = props
let displayName = 'No Display Name'
if (isDefined(user.alias)) {
@@ -25,10 +25,10 @@ export const LoggedIn = props => {
return (
-
- {displayName}
+
+ toggleMenuOpen(42)}> {displayName}
diff --git a/client/src/views/layout/header/imports.js b/client/src/views/layout/header/imports.js
index e94c51fc1..77205f165 100644
--- a/client/src/views/layout/header/imports.js
+++ b/client/src/views/layout/header/imports.js
@@ -7,7 +7,7 @@ import {
const usersMenus = {
title: 'Users',
- to: '/events',
+ to: '/users',
submenus: [
{ title: 'Your profile', to: '/users/user', icon: Search },
{ title: 'Directory', to: '/users/browse', icon: GamepadRounded },
@@ -42,7 +42,7 @@ const eventsMenus = {
const keyvaultMenus = {
title: 'Key Vault',
- to: '/events',
+ to: '/key-vault',
submenus: [
{ title: 'Manage keys', to: '/key-vault/browse', icon: Search },
{ title: 'Add key', to: '/key-vault/addKey', icon: GamepadRounded },
diff --git a/client/src/views/layout/header/index.js b/client/src/views/layout/header/index.js
index b3a3e88d9..9112d0673 100644
--- a/client/src/views/layout/header/index.js
+++ b/client/src/views/layout/header/index.js
@@ -21,6 +21,7 @@ class Header extends Component {
this.state = {
onTop: true,
mobileOpen: false,
+ openedMenu: null,
user: null
}
}
@@ -37,6 +38,18 @@ class Header extends Component {
this.setState({ mobileOpen: !this.state.mobileOpen })
}
+ toggleMenuOpen (index) {
+ if (this.state.openedMenu === index) {
+ this.setState({ openedMenu: null })
+ } else {
+ this.setState({ openedMenu: index })
+ }
+ }
+
+ closeAll () {
+ this.setState({ openedMenu: null, mobileOpen: false })
+ }
+
componentDidMount () {
window.addEventListener('scroll', () => this.handleScroll())
const user = window.localStorage.getItem('user')
@@ -49,8 +62,7 @@ class Header extends Component {
render () {
let { auth } = this.props
- let { onTop, mobileOpen } = this.state
-
+ let { onTop, mobileOpen, openedMenu } = this.state
if (window.localStorage.getItem('access_token')) {
if (jwtDecode(window.localStorage.getItem('access_token')).exp < new Date().getTime() / 1000) {
window.localStorage.clear()
@@ -61,13 +73,13 @@ class Header extends Component {
const menus = allMenus.map(({ to, title, submenus }, index) => {
return (
-
- {title}
+
+ this.toggleMenuOpen(index)}> {title}
{
submenus.map(({ icon: Icon, to: subTo, title: subTitle }, subindex) => {
return (
- - {subTitle}
+ - this.closeAll(index)}> {subTitle}
)
})}
@@ -82,7 +94,7 @@ class Header extends Component {
this.toggleMobileOpen()}>
Menu
-