菜单

用户资料和社交功能

相关源文件

本文档描述了 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

来源

资料可见性

用户资料有三种可见性设置

来源

状态管理

userDetailsSlice

应用程序使用 Redux 通过userDetailsSlice管理用户资料状态

来源

useUserDetails Hook

useUserDetails自定义 Hook 提供了与用户资料和好友系统交互的方法

该 Hook 结合了 Redux 状态和通过 IPC 调用与后端 API 交互的方法。

来源

好友请求流程

好友请求系统遵循以下流程

来源

好友请求操作

好友请求可以通过updateFriendRequestState方法执行以下操作之一

  • "ACCEPTED": 接受好友请求
  • "REFUSED": 拒绝好友请求
  • "CANCEL": 取消已发送的好友请求

来源

用户界面组件

SidebarProfile

SidebarProfile组件显示

  • 用户头像和显示名称
  • 当前正在玩的游戏(如有)
  • 好友请求通知徽章
  • 访问好友模态框的按钮

来源

UserFriendModal

应用程序包含UserFriendModal组件,用于

  • 查看和管理好友请求
  • 查看好友列表
  • 添加新好友
  • 屏蔽用户

这些模态框通过useUserDetails Hook 和以下方法进行控制

  • showFriendsModal(tab, userId)
  • hideFriendsModal()

来源

社交功能

屏蔽和隐私控制

该系统提供了全面的用户屏蔽和隐私功能

用户屏蔽系统

隐私控制

用户可以通过ProfileVisibility枚举控制其资料可见性

可见性设置描述访问级别
PUBLIC任何人均可查看资料所有用户
FRIENDS仅好友可查看资料仅好友
PRIVATE无人可查看资料仅限用户本人

来源

好友管理

好友系统支持全面的关系管理

好友操作

来源

IPC 通信

该系统使用 IPC(进程间通信)来促进渲染器进程和主进程之间的交互。与用户资料和社交功能相关的关键方法包括

方法目的
getMe获取当前用户资料
getUser获取其他用户的资料
updateProfile更新用户资料详情
getFriendRequests获取待处理好友请求
sendFriendRequest发送好友请求
updateFriendRequest接受/拒绝好友请求
getUserFriends获取用户好友列表
getBlockedUsers获取被屏蔽用户列表
blockUser屏蔽用户
unblockUser取消屏蔽用户
undoFriendship删除好友
syncFriendRequests同步好友请求通知

来源

好友请求同步

应用程序包含实时好友请求通知系统

来源

好友游戏追踪

系统追踪并显示用户及其好友当前正在玩的游戏

这使得应用程序能够在 UI 中显示好友当前正在玩的游戏。

来源

与好友成就比较

该系统使用户能够与好友比较同一游戏中的成就

此功能与成就系统集成,允许进行游戏进度的社交比较。

来源

云功能与订阅集成

用户资料系统与 Hydra 云订阅功能集成

  • 成就同步需要有效订阅
  • 订阅用户的资料徽章显示
  • 云订阅用户的特殊 UI 指示器

来源

初始化与会话管理

应用程序启动时,会尝试恢复用户会话

  1. 缓存的用户资料从 localStorage 加载
  2. 应用程序调用fetchUserDetails()获取最新数据
  3. 好友请求已同步
  4. 已设置事件监听器以进行实时更新

来源