blob: 967be6c35a236870070ea858c30a051dcee7050e [file] [log] [blame]
Akane121765b61a72025-05-17 13:52:25 +08001import React, { useState } from 'react';
2import { useNavigate,useLocation } from 'react-router-dom';
3import './personalSubpage.css';
4
5const Setting = ({ onLogout }) => {
6 const navigate = useNavigate();
7 const location = useLocation();
8 // 模拟数据
9 const [formData, setFormData] = useState({
10 username: 'user123',
11 email: 'user@example.com',
12 notification: true
13 });
14
15 const handleChange = (e) => {
16 const { name, value, type, checked } = e.target;
17 setFormData(prev => ({
18 ...prev,
19 [name]: type === 'checkbox' ? checked : value
20 }));
21 };
22
23 const handleSubmit = (e) => {
24 e.preventDefault();
25 alert('设置已保存');
26 };
27
28 const handleBack = () => {
29 // 返回个人中心,并携带来源标记
30 navigate('/personal', {
31 state: {
32 fromSubpage: true, // 标记来自子页面
33 dashboardTab: location.state?.dashboardTab // 保留Dashboard的标签页状态
34 },
35 replace: true // 替换当前历史记录
36 });
37 };
38
39 return (
40 <div className="subpage-container">
41 <button className="back-button" onClick={(handleBack)}>
42 返回个人中心
43 </button>
44
45 <h2 className="page-title">账号设置</h2>
46
47 <form onSubmit={handleSubmit}>
48 <div className="form-group">
49 <label className="form-label">用户名</label>
50 <input
51 type="text"
52 name="username"
53 value={formData.username}
54 onChange={handleChange}
55 className="form-input"
56 />
57 </div>
58
59 <div className="form-group">
60 <label className="form-label">电子邮箱</label>
61 <input
62 type="email"
63 name="email"
64 value={formData.email}
65 onChange={handleChange}
66 className="form-input"
67 />
68 </div>
69
70 <div className="form-group">
71 <label className="form-label">
72 <input
73 type="checkbox"
74 name="notification"
75 checked={formData.notification}
76 onChange={handleChange}
77 />
78 接收邮件通知
79 </label>
80 </div>
81
82 <div className="form-actions">
83 <button type="submit" className="action-btn">
84 保存设置
85 </button>
86 <button
87 type="button"
88 className="action-btn danger-btn"
89 onClick={onLogout}
90 >
91 退出登录
92 </button>
93 </div>
94 </form>
95 </div>
96 );
97};
98
99export default Setting;