Skip to content

feat: 新增完整的评论功能模块,包括独立页面、全屏内嵌面板和「主创说」特性 - #101

Open
WindDrift wants to merge 13 commits into
SPlayer-Dev:devfrom
WindDrift:feat-comment
Open

feat: 新增完整的评论功能模块,包括独立页面、全屏内嵌面板和「主创说」特性#101
WindDrift wants to merge 13 commits into
SPlayer-Dev:devfrom
WindDrift:feat-comment

Conversation

@WindDrift

@WindDrift WindDrift commented Jul 22, 2026

Copy link
Copy Markdown

改动类型

  • 新功能(feat)
  • 缺陷修复(fix)
  • 重构 / 优化(不改变对外行为)
  • 文档(docs)
  • 其他(请在「改动说明」中注明)

是否包含破坏性变更

  • 是(请在「改动说明」中详细描述)

改动说明

动机:歌曲评论是播放器核心体验之一,原实现仅有弹窗形态且不支持多源与主创内容。本 PR 重建评论模块:独立评论页 + 全屏内嵌面板,并围绕性能、健壮性、交互细节做了一轮完整审查与修复。

主要变更

  • 独立评论页 (/comments/:source/:id):歌曲右键「查看评论」跳转,含封面、播放、刷新、来源切换与顶部折叠动效
  • 全屏播放器内嵌评论:无歌词时全屏、有歌词时左半屏并排;与播放队列互斥;沉浸模式自动隐藏刷新/关闭/来源控件
  • 主创说:解析歌手绑定的网易云账号,聚合热评与普通评论中的主创发言(含低赞评论),按点赞降序展示歌手名徽章;歌手账号与评论均使用有界 LRU 缓存
  • 多评论源:网易云内建源 + 插件评论源;统一响应归一化与分页协议;跨源歌曲经搜索匹配后拉取
  • 瀑布流 + 无限滚动:grid 自适应列数、ResizeObserver 行高测量、IntersectionObserver 触底加载、按 commentId 去重追加,空态/加载/错误重试齐备
  • 修复:全屏评论与歌词无间距;回复超长单词撑破右边界;低赞主创评论未纳入主创说;小众歌曲无热评时自动切到最新评论
  • 性能与健壮性:歌曲元信息解析有界缓存(翻页不再重复搜索);主创说请求并发化(串行约 10 次降至 2 轮往返);评论源加载失败不再静默空态(错误提示 + 整体重试);非法 URL 编码路由不再崩溃;回复项缺 commentId 时生成唯一 id 避免 key 冲突;全屏评论 half/full 模式改按实际就绪歌词切换;主创说加载中显示占位
  • 清理:移除已无入口的旧评论弹窗及其 store 状态,删除冗余 i18n key

关联 Issue

截图 / 录屏

image image image image

自查清单

  • 本 PR 只包含一个主要功能 / 修复,没有夹带无关改动
  • 已在本地完整测试通过;AI 生成的代码同样自行测试并审阅过,未做未经验证的提交
  • 已运行 pnpm format,并确认 pnpm typecheckpnpm lint 通过
  • 改动涉及原生模块时已 pnpm build:native 验证;未手写 native/*/index.d.ts
  • 已向 dev 分支提交

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant