import { outLogin } from './service';
|
import { LogoutOutlined } from '@ant-design/icons';
|
import { useModel } from '@umijs/max';
|
import React from 'react';
|
import { flushSync } from 'react-dom';
|
import './style.less';
|
|
export type GlobalHeaderRightProps = {
|
menu?: boolean;
|
children?: React.ReactNode;
|
};
|
|
export const AvatarName = () => {
|
const { initialState } = useModel('@@initialState');
|
//
|
|
const { currentUser } = initialState || {};
|
return <span className="anticon">{currentUser?.userName || '超级管理员'}</span>;
|
};
|
|
export const AvatarDropdown: React.FC<GlobalHeaderRightProps> = ({ menu, children }) => {
|
|
const { initialState, setInitialState } = useModel('@@initialState');
|
|
|
const onMenuClick = async () => {
|
await outLogin();
|
localStorage.clear();
|
flushSync(() => {
|
setInitialState((s) => ({ ...s, currentUser: undefined }));
|
});
|
|
}
|
|
return <div style={{ display: 'flex', alignItems: 'center', color: '#000' }}>
|
<div className='unread' >
|
<div>未读提醒</div>
|
<div style={{ border: '1px solid red', borderRadius: '50%', width: '18px', lineHeight: '18px', marginLeft: '5px', textAlign: 'center', color: 'red' }}>1</div>
|
</div>
|
<div className="logoOut" onClick={onMenuClick}>退出登录<LogoutOutlined style={{ marginLeft: '5px' }} /></div>
|
</div>
|
};
|