blob: e677db7adce2bce108fcd93828a67c014d83032a [file] [log] [blame]
223010093d8132e2025-06-07 11:34:38 +08001import React, { useState } from 'react';
2230100901d3ff92025-06-07 16:16:26 +08002import Header from '../../components/Header';
223010093d8132e2025-06-07 11:34:38 +08003import './NewUserGuide.css';
2230100901d3ff92025-06-07 16:16:26 +08004import NewbieTasks from './NewbieTasks.jsx';
223010093d8132e2025-06-07 11:34:38 +08005
6const NewUserGuide = () => {
7 const [activeTab, setActiveTab] = useState('terms');
8
9 const renderContent = () => {
10 switch (activeTab) {
11 case 'terms':
12 return (
13 <div className="guide-content">
14 <h2>名词解释</h2>
2230100901d3ff92025-06-07 16:16:26 +080015 <p>echo Torrent中,我们使用以下术语:</p>
223010093d8132e2025-06-07 11:34:38 +080016 <ul>
2230100901d3ff92025-06-07 16:16:26 +080017 <li><strong>Tracker:</strong> 监测用户流量的服务器。</li>
18 <li><strong>种子:</strong> 扩展名为.torrent的文件,主要包含文件信息、Tracker信息等。在本站发布的种子。每个用户下载都会下载包含特定信息的种子以便Tracker记录不同用户的流量情况。</li>
19 <li><strong>流量:</strong> 分为上传量(通过本站Tracker向其他用户上传的数据总量)和下载量(通过本站Tracker从其他用户下载的数据总量)。</li>
223010093d8132e2025-06-07 11:34:38 +080020 <li><strong>做种:</strong> 指上传资源供他人下载。</li>
2230100901d3ff92025-06-07 16:16:26 +080021 <li><strong>分享率:</strong> 分享率=上传量/下载量</li>
22 <li><strong>经验值:</strong> 用于奖励活跃用户的虚拟积分。</li>
23 <li><strong>金币:</strong> 用于兑换虚拟物品的虚拟货币,可在个人中心充值。</li>
223010093d8132e2025-06-07 11:34:38 +080024 </ul>
25 </div>
26 );
27 case 'tutorial':
28 return (
29 <div className="guide-content">
30 <h2>详细教程</h2>
31 <ol>
32 <li>注册并完善个人资料</li>
33 <li>浏览并下载感兴趣的种子资源</li>
34 <li>做种、评论、评分获得积分</li>
35 <li>发布你的第一个种子</li>
223010093d8132e2025-06-07 11:34:38 +080036 </ol>
37 </div>
38 );
39 case 'tasks':
40 return (
41 <div className="guide-content">
2230100901d3ff92025-06-07 16:16:26 +080042 <NewbieTasks />
43 {/* ✅ 使用真实组件替换静态任务列表 */}
223010093d8132e2025-06-07 11:34:38 +080044 </div>
45 );
46 default:
47 return null;
48 }
49 };
50
51 return (
52 <div className="new-user-guide-page">
53 <Header />
54 <div className="guide-container">
55 <div className="guide-nav">
56 <button
57 className={activeTab === 'terms' ? 'active' : ''}
58 onClick={() => setActiveTab('terms')}
59 >
60 名词解释
61 </button>
62 <button
63 className={activeTab === 'tutorial' ? 'active' : ''}
64 onClick={() => setActiveTab('tutorial')}
65 >
66 详细教程
67 </button>
68 <button
69 className={activeTab === 'tasks' ? 'active' : ''}
70 onClick={() => setActiveTab('tasks')}
71 >
Krishya34493be2025-06-09 22:45:46 +080072 用户等级
223010093d8132e2025-06-07 11:34:38 +080073 </button>
74 </div>
2230100901d3ff92025-06-07 16:16:26 +080075 <div className="guide-main">
76 {renderContent()}
77 </div>
223010093d8132e2025-06-07 11:34:38 +080078 </div>
79 </div>
80 );
81};
82
83export default NewUserGuide;