feat(torrents): 优化种子页面功能和交互
- 调整 torrents API 调用,增加更多接口支持
- 优化种子列表展示和操作,支持下载和查看详情
- 新增种子详情页面路由和组件
- 改进上传种子功能,增加表单验证和错误提示
- 优化用户信息展示
Change-Id: I9343f2f446639733ee5800a86bab85a4ac6d1a72
diff --git a/src/features/auth/contexts/AuthContext.jsx b/src/features/auth/contexts/AuthContext.jsx
index 3c53c9c..5b59e68 100644
--- a/src/features/auth/contexts/AuthContext.jsx
+++ b/src/features/auth/contexts/AuthContext.jsx
@@ -6,6 +6,7 @@
useCallback,
} from "react";
import { userLogin, registerUser, logoutUser, adminLogin as adminLoginAPI } from "@/api/auth";
+import { getUserInfo } from "@/api/user";
import { message } from "antd";
import { useNavigate } from "react-router-dom"; // 导入 useNavigate
@@ -173,6 +174,34 @@
[user]
);
+ // 更新用户信息的方法
+ const updateUserInfo = useCallback(async (username) => {
+ try {
+ const response = await getUserInfo(username || user?.username);
+
+ if (response && response.data) {
+ const updatedUserData = {
+ ...user,
+ ...response.data
+ };
+
+ // 更新localStorage和state
+ localStorage.setItem("user", JSON.stringify(updatedUserData));
+ setUser(updatedUserData);
+
+ console.log('用户信息已更新:', updatedUserData);
+ return updatedUserData;
+ } else {
+ console.error('获取用户信息失败:响应数据格式错误');
+ return null;
+ }
+ } catch (error) {
+ console.error('更新用户信息失败:', error);
+ message.error('更新用户信息失败: ' + (error.message || '网络错误'));
+ return null;
+ }
+ }, [user]);
+
const value = {
user,
isAuthenticated,
@@ -183,6 +212,7 @@
logout,
hasRole,
reloadAuthData: loadAuthData, // 暴露一个重新加载数据的方法
+ updateUserInfo, // 暴露更新用户信息的方法
};
return <AuthContext.Provider value={value}>{children}</AuthContext.Provider>;