blob: 5681927e81a5f37677a65120f1f29531f71bd38e [file] [log] [blame]
import React from 'react';
import { Button, Modal } from 'antd';
import { LogoutOutlined } from '@ant-design/icons';
import { clearAuthInfo, getUserInfo } from '../../utils/auth';
const LogoutButton = ({ style = {}, onLogout = null }) => {
const userInfo = getUserInfo();
const handleLogout = () => {
Modal.confirm({
title: '确认退出',
content: '您确定要退出登录吗?',
okText: '确定',
cancelText: '取消',
onOk: () => {
// 清除认证信息,但保留记住的登录信息
clearAuthInfo(false);
// 执行回调函数
if (onLogout) {
onLogout();
} else {
// 默认跳转到登录页
window.location.href = '/';
}
}
});
};
const handleCompleteLogout = () => {
Modal.confirm({
title: '完全退出',
content: '这将清除所有保存的登录信息,包括"记住我"的设置。确定要继续吗?',
okText: '确定',
cancelText: '取消',
onOk: () => {
// 清除所有认证信息,包括记住的登录信息
clearAuthInfo(true);
// 执行回调函数
if (onLogout) {
onLogout();
} else {
// 默认跳转到登录页
window.location.href = '/';
}
}
});
};
if (!userInfo) {
return null;
}
return (
<div style={style}>
<Button
type="default"
icon={<LogoutOutlined />}
onClick={handleLogout}
style={{ marginRight: 8 }}
>
退出登录
</Button>
<Button
type="link"
size="small"
onClick={handleCompleteLogout}
style={{ color: '#ff4d4f' }}
>
完全退出
</Button>
</div>
);
};
export default LogoutButton;