本文档描述了 Hydra Launcher 中的用户资料和社交功能系统。它解释了数据模型、API 交互、状态管理以及启用用户身份验证、资料自定义和社交功能(包括好友请求、好友列表、用户屏蔽和隐私控制)的 UI 组件。
有关用户身份验证流程的信息,请参阅身份验证与 API 集成。
用户资料和社交功能系统建立在多个相互连接的组件之上,这些组件负责数据存储、状态管理和 UI 交互。
来源
该系统使用几个关键接口来表示用户数据和关系
| 接口 | 描述 | 关键属性 |
|---|---|---|
UserDetails | 当前用户的完整资料 | id, username, email, displayName, profileImageUrl, profileVisibility, subscription |
UserProfile | 他人可见的用户资料 | id, displayName, profileImageUrl, relation, friends, currentGame |
UserFriend | 好友的表示 | id, displayName, profileImageUrl, currentGame |
FriendRequest | 待处理的好友请求 | id, displayName, profileImageUrl, type (SENT/RECEIVED) |
UpdateProfileRequest | 用于更新资料的数据 | displayName, profileVisibility, profileImageUrl, backgroundImageUrl, bio |
来源
用户资料有三种可见性设置
来源
应用程序使用 Redux 通过userDetailsSlice管理用户资料状态
来源
useUserDetails自定义 Hook 提供了与用户资料和好友系统交互的方法
该 Hook 结合了 Redux 状态和通过 IPC 调用与后端 API 交互的方法。
来源
好友请求系统遵循以下流程
来源
好友请求可以通过updateFriendRequestState方法执行以下操作之一
"ACCEPTED": 接受好友请求"REFUSED": 拒绝好友请求"CANCEL": 取消已发送的好友请求来源
SidebarProfile组件显示
来源
应用程序包含UserFriendModal组件,用于
这些模态框通过useUserDetails Hook 和以下方法进行控制
showFriendsModal(tab, userId)hideFriendsModal()来源
该系统提供了全面的用户屏蔽和隐私功能
用户屏蔽系统
隐私控制
用户可以通过ProfileVisibility枚举控制其资料可见性
| 可见性设置 | 描述 | 访问级别 |
|---|---|---|
PUBLIC | 任何人均可查看资料 | 所有用户 |
FRIENDS | 仅好友可查看资料 | 仅好友 |
PRIVATE | 无人可查看资料 | 仅限用户本人 |
来源
好友系统支持全面的关系管理
好友操作
来源
该系统使用 IPC(进程间通信)来促进渲染器进程和主进程之间的交互。与用户资料和社交功能相关的关键方法包括
| 方法 | 目的 |
|---|---|
getMe | 获取当前用户资料 |
getUser | 获取其他用户的资料 |
updateProfile | 更新用户资料详情 |
getFriendRequests | 获取待处理好友请求 |
sendFriendRequest | 发送好友请求 |
updateFriendRequest | 接受/拒绝好友请求 |
getUserFriends | 获取用户好友列表 |
getBlockedUsers | 获取被屏蔽用户列表 |
blockUser | 屏蔽用户 |
unblockUser | 取消屏蔽用户 |
undoFriendship | 删除好友 |
syncFriendRequests | 同步好友请求通知 |
来源
应用程序包含实时好友请求通知系统
来源
系统追踪并显示用户及其好友当前正在玩的游戏
这使得应用程序能够在 UI 中显示好友当前正在玩的游戏。
来源
该系统使用户能够与好友比较同一游戏中的成就
此功能与成就系统集成,允许进行游戏进度的社交比较。
来源
用户资料系统与 Hydra 云订阅功能集成
来源
应用程序启动时,会尝试恢复用户会话
fetchUserDetails()获取最新数据来源