import React, { useState, useEffect } from 'react' import { useNavigate } from 'react-router-dom' import { Card, Avatar, List, Button, Modal, message, Typography, Space, } from 'antd' import { RightOutlined, SettingOutlined, FileTextOutlined, UserOutlined, BookOutlined, } from '@ant-design/icons' import styles from './Profile.module.less' const { Title, Text } = Typography interface UserInfo { username: string nickname: string avatar: string } const Profile: React.FC = () => { const navigate = useNavigate() const [userInfo, setUserInfo] = useState(null) useEffect(() => { // 从 localStorage 获取用户信息 const token = localStorage.getItem('token') const savedUserInfo = localStorage.getItem('user') if (token && savedUserInfo) { try { setUserInfo(JSON.parse(savedUserInfo)) } catch (e) { console.error('解析用户信息失败', e) } } }, []) const handleLogout = () => { Modal.confirm({ title: '确定要退出登录吗?', onOk: () => { localStorage.removeItem('token') localStorage.removeItem('user') setUserInfo(null) message.success('已退出登录') navigate('/login') }, }) } const handleLogin = () => { navigate('/login') } return (
{/* 用户信息卡片 */} {userInfo ? (
} />
{userInfo.nickname} @{userInfo.username}
) : (
} />
未登录
)}
{/* 功能列表 */} navigate('/wrong-questions')} style={{ cursor: 'pointer' }} > 错题本 message.info('功能开发中')} style={{ cursor: 'pointer' }} > 我的题目 message.info('功能开发中')} style={{ cursor: 'pointer' }} > 设置 {/* 退出登录按钮 */} {userInfo && ( )}
) } export default Profile