游戏目录系统为 Hydra 启动器提供游戏发现、搜索和过滤功能。它将 Steam 游戏数据与下载源集成,为用户呈现一个全面的可浏览游戏库。该系统包括完善的过滤、分页和实时搜索功能。
有关游戏选择后的下载管理,请参阅下载系统。有关 Steam 集成的具体信息,请参阅游戏详情和配置。有关随机游戏发现,请参阅Steam250 集成和随机游戏。
目录系统遵循模块化的 React-Redux 架构,具有外部数据集成和本地缓存功能。
来源: src/renderer/src/pages/catalogue/catalogue.tsx1-330 src/renderer/src/features/catalogue-search.ts1-68 src/renderer/src/workers/download-sources.worker.ts1-239
目录实现了全面的搜索和过滤系统,具有实时更新和分页功能。
CatalogueSearchState 接口定义了完整的搜索上下文
| 属性 | 类型 | 描述 |
|---|---|---|
filters | CatalogueSearchPayload | 活动过滤条件 |
page | 数字 | 当前分页页码 |
steamUserTags | Record<string, Record<string, number>> | 本地化的 Steam 用户标签 |
steamGenres | Record<string, string[]> | 本地化的 Steam 游戏类型 |
过滤器类别
来源: src/renderer/src/features/catalogue-search.ts6-25
搜索系统使用防抖请求,以防止输入时产生过多的 API 调用
来源: src/renderer/src/pages/catalogue/catalogue.tsx61-78 src/renderer/src/components/header/header.tsx62-73
每个过滤器类别都有一个独特的视觉标识符
来源: src/renderer/src/pages/catalogue/catalogue.tsx24-30
目录集成了多个外部数据源,以提供全面的游戏信息。
useCatalogue Hook 管理 Steam 数据获取和本地化。
来源: src/renderer/src/hooks/use-catalogue.ts1-53
下载源通过一个专用的 Web Worker 进行管理,该 Worker 负责处理验证、同步和本地存储。
| 操作 | 方法 | 描述 |
|---|---|---|
| 导入 | IMPORT_DOWNLOAD_SOURCE | 验证并导入新源 |
| 删除 | DELETE_DOWNLOAD_SOURCE | 移除源和相关的分流包 |
| 验证 | VALIDATE_DOWNLOAD_SOURCE | 检查源的有效性 |
| 同步 | SYNC_DOWNLOAD_SOURCES | 更新现有源 |
| 清除所有 | DELETE_ALL_DOWNLOAD_SOURCES | 移除所有源 |
来源: src/renderer/src/workers/download-sources.worker.ts22-27
目录 UI 由模块化的 React 组件构建,这些组件处理浏览体验的不同方面。
来源: src/renderer/src/pages/catalogue/catalogue.tsx233-329
FilterSection 组件为每个过滤器类别提供可搜索的虚拟化列表
主要功能
来源: src/renderer/src/pages/catalogue/filter-section.tsx8-117
目录使用具有专用区域的灵活布局
| CSS 类 | 宽度 | 目的 |
|---|---|---|
catalogue__filters-container | 270px (固定) | 过滤器侧边栏 |
catalogue__games-container | 100% (弹性) | 游戏网格 |
catalogue__content | 不适用 | 弹性容器 |
来源: src/renderer/src/pages/catalogue/catalogue.scss12-56
系统实现了高效的分页,支持可配置的页面大小。
分页系统包括
来源: src/renderer/src/pages/catalogue/catalogue.tsx32 src/renderer/src/pages/catalogue/catalogue.tsx278-287
目录在搜索操作期间提供视觉反馈。
来源: src/renderer/src/pages/catalogue/catalogue.tsx261-267
目录系统支持 Steam 数据和 UI 元素的全面本地化。
Steam 游戏类型和标签在本地化值和英文值之间进行映射
此映射实现了