feat(navbar): 添加用户信息显示和菜单项

production
钟良源 5 months ago
parent 86f026f493
commit a18d24b6e6

@ -8,7 +8,8 @@ import {
import { import {
IconSettings, IconSettings,
IconPoweroff, IconPoweroff,
IconLoading IconLoading,
IconUser
} from '@arco-design/web-react/icon'; } from '@arco-design/web-react/icon';
import { useSelector, useDispatch } from 'react-redux'; import { useSelector, useDispatch } from 'react-redux';
import { GlobalContext } from '@/context'; import { GlobalContext } from '@/context';
@ -38,7 +39,7 @@ function Navbar({ show }: { show: boolean }) {
} }
function onMenuItemClick(key) { function onMenuItemClick(key) {
handleLogout(); if (key === 'logout') handleLogout();
} }
useEffect(() => { useEffect(() => {
@ -69,6 +70,10 @@ function Navbar({ show }: { show: boolean }) {
const droplist = ( const droplist = (
<Menu onClickMenuItem={onMenuItemClick}> <Menu onClickMenuItem={onMenuItemClick}>
<Menu.Item key="userInfo">
<IconUser className={styles['dropdown-icon']} />
{userInfo.account}
</Menu.Item>
<Menu.Item key="logout"> <Menu.Item key="logout">
<IconPoweroff className={styles['dropdown-icon']} /> <IconPoweroff className={styles['dropdown-icon']} />
{t['navbar.logout']} {t['navbar.logout']}
@ -94,17 +99,20 @@ function Navbar({ show }: { show: boolean }) {
</div> </div>
<ul className={styles.right}> <ul className={styles.right}>
{userInfo && ( {userInfo && (
<li> <>
<Dropdown droplist={droplist} trigger="click" position="br" disabled={userLoading}> <li>
<Avatar size={32} style={{ cursor: 'pointer' }}> <Dropdown droplist={droplist} trigger="click" position="br" disabled={userLoading}>
{userLoading ? ( <Avatar size={32} style={{ cursor: 'pointer' }}>
<IconLoading /> {userLoading ? (
) : ( <IconLoading />
<img alt="avatar" src={userInfo.avatar} /> ) : (
)} <img alt="avatar" src={userInfo.avatar} />
</Avatar> )}
</Dropdown> </Avatar>
</li> <span style={{ marginLeft: 8, cursor: 'pointer' }}>{userInfo.account}</span>
</Dropdown>
</li>
</>
)} )}
</ul> </ul>
</div> </div>

Loading…
Cancel
Save