mirror of
				https://github.com/Telecominfraproject/wlan-cloud-ui.git
				synced 2025-11-04 04:37:53 +00:00 
			
		
		
		
	Compare commits
	
		
			5 Commits
		
	
	
		
			v1.1.0
			...
			feature/NE
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					0439b052ca | ||
| 
						 | 
					448a198c23 | ||
| 
						 | 
					f989132de6 | ||
| 
						 | 
					a6406e2be3 | ||
| 
						 | 
					0748ddbed1 | 
							
								
								
									
										58
									
								
								app/components/UsersDropdown/index.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										58
									
								
								app/components/UsersDropdown/index.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,58 @@
 | 
				
			|||||||
 | 
					import React, { useState } from 'react';
 | 
				
			||||||
 | 
					import PropTypes from 'prop-types';
 | 
				
			||||||
 | 
					import { Link } from 'react-router-dom';
 | 
				
			||||||
 | 
					import { Popover, Row } from 'antd';
 | 
				
			||||||
 | 
					import { UserOutlined } from '@ant-design/icons';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import styles from './index.module.scss';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const UsersDropdown = ({ onLogout }) => {
 | 
				
			||||||
 | 
					  const [popoverVisible, setPopoverVisible] = useState(false);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  const hidePopover = () => {
 | 
				
			||||||
 | 
					    setPopoverVisible(false);
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  const handleVisibleChange = visible => {
 | 
				
			||||||
 | 
					    setPopoverVisible(visible);
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  const userOptions = (
 | 
				
			||||||
 | 
					    <>
 | 
				
			||||||
 | 
					      <Row>
 | 
				
			||||||
 | 
					        <Link onClick={hidePopover} to="/account">
 | 
				
			||||||
 | 
					          Account
 | 
				
			||||||
 | 
					        </Link>
 | 
				
			||||||
 | 
					      </Row>
 | 
				
			||||||
 | 
					      <Row>
 | 
				
			||||||
 | 
					        <Link onClick={onLogout} to="/">
 | 
				
			||||||
 | 
					          Log Out
 | 
				
			||||||
 | 
					        </Link>
 | 
				
			||||||
 | 
					      </Row>
 | 
				
			||||||
 | 
					    </>
 | 
				
			||||||
 | 
					  );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  return (
 | 
				
			||||||
 | 
					    <Popover
 | 
				
			||||||
 | 
					      content={userOptions}
 | 
				
			||||||
 | 
					      trigger="click"
 | 
				
			||||||
 | 
					      getPopupContainer={e => e.parentElement}
 | 
				
			||||||
 | 
					      visible={popoverVisible}
 | 
				
			||||||
 | 
					      onVisibleChange={handleVisibleChange}
 | 
				
			||||||
 | 
					      placement="bottomRight"
 | 
				
			||||||
 | 
					      arrowPointAtCenter
 | 
				
			||||||
 | 
					    >
 | 
				
			||||||
 | 
					      <UserOutlined className={styles.MenuIcon} />
 | 
				
			||||||
 | 
					    </Popover>
 | 
				
			||||||
 | 
					  );
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					UsersDropdown.propTypes = {
 | 
				
			||||||
 | 
					  onLogout: PropTypes.func,
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					UsersDropdown.defaultProps = {
 | 
				
			||||||
 | 
					  onLogout: () => {},
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default UsersDropdown;
 | 
				
			||||||
							
								
								
									
										7
									
								
								app/components/UsersDropdown/index.module.scss
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								app/components/UsersDropdown/index.module.scss
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,7 @@
 | 
				
			|||||||
 | 
					.MenuIcon {
 | 
				
			||||||
 | 
					    cursor: pointer;
 | 
				
			||||||
 | 
					    font-size: 18px;
 | 
				
			||||||
 | 
					    line-height: 64px;
 | 
				
			||||||
 | 
					    padding: 0 24px;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
@@ -12,8 +12,10 @@ import { removeItem } from 'utils/localStorage';
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import UserContext from 'contexts/UserContext';
 | 
					import UserContext from 'contexts/UserContext';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import UsersDropdown from 'components/UsersDropdown';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const MasterLayout = ({ children }) => {
 | 
					const MasterLayout = ({ children }) => {
 | 
				
			||||||
  const { roles, customerId } = useContext(UserContext);
 | 
					  const { roles, customerId, email } = useContext(UserContext);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  const client = useApolloClient();
 | 
					  const client = useApolloClient();
 | 
				
			||||||
  const location = useLocation();
 | 
					  const location = useLocation();
 | 
				
			||||||
@@ -59,7 +61,7 @@ const MasterLayout = ({ children }) => {
 | 
				
			|||||||
        {
 | 
					        {
 | 
				
			||||||
          key: 'editAccount',
 | 
					          key: 'editAccount',
 | 
				
			||||||
          path: ROUTES.account,
 | 
					          path: ROUTES.account,
 | 
				
			||||||
          text: 'Edit Account',
 | 
					          text: 'Account',
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
          key: 'logout',
 | 
					          key: 'logout',
 | 
				
			||||||
@@ -90,6 +92,8 @@ const MasterLayout = ({ children }) => {
 | 
				
			|||||||
      menuItems={menuItems}
 | 
					      menuItems={menuItems}
 | 
				
			||||||
      mobileMenuItems={mobileMenuItems}
 | 
					      mobileMenuItems={mobileMenuItems}
 | 
				
			||||||
      totalAlarms={data && data.getAlarmCount}
 | 
					      totalAlarms={data && data.getAlarmCount}
 | 
				
			||||||
 | 
					      currentUserEmail={email}
 | 
				
			||||||
 | 
					      usersDropdown={<UsersDropdown onLogout={handleLogout} />}
 | 
				
			||||||
    >
 | 
					    >
 | 
				
			||||||
      {children}
 | 
					      {children}
 | 
				
			||||||
    </Layout>
 | 
					    </Layout>
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user