blob: 967be6c35a236870070ea858c30a051dcee7050e [file] [log] [blame]
import React, { useState } from 'react';
import { useNavigate,useLocation } from 'react-router-dom';
import './personalSubpage.css';
const Setting = ({ onLogout }) => {
const navigate = useNavigate();
const location = useLocation();
// 模拟数据
const [formData, setFormData] = useState({
username: 'user123',
email: 'user@example.com',
notification: true
});
const handleChange = (e) => {
const { name, value, type, checked } = e.target;
setFormData(prev => ({
...prev,
[name]: type === 'checkbox' ? checked : value
}));
};
const handleSubmit = (e) => {
e.preventDefault();
alert('设置已保存');
};
const handleBack = () => {
// 返回个人中心,并携带来源标记
navigate('/personal', {
state: {
fromSubpage: true, // 标记来自子页面
dashboardTab: location.state?.dashboardTab // 保留Dashboard的标签页状态
},
replace: true // 替换当前历史记录
});
};
return (
<div className="subpage-container">
<button className="back-button" onClick={(handleBack)}>
返回个人中心
</button>
<h2 className="page-title">账号设置</h2>
<form onSubmit={handleSubmit}>
<div className="form-group">
<label className="form-label">用户名</label>
<input
type="text"
name="username"
value={formData.username}
onChange={handleChange}
className="form-input"
/>
</div>
<div className="form-group">
<label className="form-label">电子邮箱</label>
<input
type="email"
name="email"
value={formData.email}
onChange={handleChange}
className="form-input"
/>
</div>
<div className="form-group">
<label className="form-label">
<input
type="checkbox"
name="notification"
checked={formData.notification}
onChange={handleChange}
/>
接收邮件通知
</label>
</div>
<div className="form-actions">
<button type="submit" className="action-btn">
保存设置
</button>
<button
type="button"
className="action-btn danger-btn"
onClick={onLogout}
>
退出登录
</button>
</div>
</form>
</div>
);
};
export default Setting;