From ffcb8694efac9ad7117405835a25b3424a7836ef Mon Sep 17 00:00:00 2001
From: rlacko <rlacko@sch.bme.hu>
Date: Tue, 28 Jan 2020 23:47:35 +0100
Subject: [PATCH] #67 Hide menu after click

---
 src/components/Header.js | 35 +++++++++++++++++++++++------------
 1 file changed, 23 insertions(+), 12 deletions(-)

diff --git a/src/components/Header.js b/src/components/Header.js
index 16ca78f..5cdc710 100644
--- a/src/components/Header.js
+++ b/src/components/Header.js
@@ -64,17 +64,19 @@ class Header extends Component {
   constructor(props) {
     super(props);
     this.state = {
-      visible: false,
+      isOpen: false,
     };
   }
   componentWillMount() {
     this.props.getUserData();
   }
 
-  switchHeader() {
-    this.setState( oldState => {
-      visible: !oldState.visible
-    })
+  handleOpen = () => {
+    this.setState({ isOpen: true });
+  }
+
+  handleClose = () => {
+    this.setState({ isOpen: false });
   }
 
   render() {
@@ -103,7 +105,10 @@ class Header extends Component {
                       {menuItems.map((item, i) =>
                         (this.props.user.permission >= item.permissionLevel
                           && item.permissionLevel > 0?
-                            <Menu.Item key={i} as={Link} to={item.to}>{item.prefix}{item.text}</Menu.Item>
+                            <Menu.Item
+                              key={i} as={Link} to={item.to}>
+                                {item.prefix}{item.text}
+                            </Menu.Item>
                             : null
                         ))
                       }
@@ -132,17 +137,23 @@ class Header extends Component {
             <Menu inverted secondary size='normal'>
               <Menu.Item as={Link} to={menuItems[0].to}>{menuItems[0].prefix}{menuItems[0].text}</Menu.Item>     
               <Popup trigger={
-                  <Menu.Item position='right'>
+                  <Menu.Item onClick={this.handleClose} 
+                  position='right'>
                     <Icon name='bars' size='large' />
                   </Menu.Item>
                 }
                 position='center'
-                flowing hoverable inverted>
+                flowing hoverable inverted
+                open={this.state.isOpen}
+                onOpen={this.handleOpen}>
                   <Menu vertical inverted secondary size='normal'>
                     {menuItems.map((item, i) =>
                       ( (this.props.user.permission >= item.permissionLevel ||
                         item.permissionLevel === 0) && i>0?
-                          <Menu.Item key={i} as={Link} to={item.to}>{item.prefix}{item.text}</Menu.Item>
+                          <Menu.Item onClick={this.handleClose} 
+                          key={i} as={Link} to={item.to}>
+                            {item.prefix}{item.text}
+                          </Menu.Item>
                           : null
                       ))
                     }
@@ -150,11 +161,11 @@ class Header extends Component {
                       {
                         this.props.user.id ?
                           <Button.Group>
-                            <Button inverted as={Link} to='/profile'>Profilom</Button>
-                            <Button as='a' href='/api/v1/logout/' icon='sign out' />
+                            <Button onClick={this.handleClose} inverted as={Link} to='/profile'>Profilom</Button>
+                            <Button onClick={this.handleClose} as='a' href='/api/v1/logout/' icon='sign out' />
                           </Button.Group>
                         :
-                          <Button as='a' href='/api/v1/login/authsch/' inverted>BejelentkezĂŠs</Button>
+                          <Button onClick={this.handleClose} as='a' href='/api/v1/login/authsch/' inverted>BejelentkezĂŠs</Button>
                       }
                     </Menu.Item>
                   </Menu>
-- 
GitLab