Skip to content

feat: 文件夹目录树支持拖拽调整宽度 - #444

Open
canvascat wants to merge 1 commit into
SPlayer-Dev:devfrom
canvascat:feat/folder-sidebar-resize
Open

canvascat wants to merge 1 commit into
SPlayer-Dev:devfrom
canvascat:feat/folder-sidebar-resize

Conversation

@canvascat

@canvascat canvascat commented Nov 4, 2026 •

Copy link
Copy Markdown

改动类型

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

是否包含破坏性变更

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

改动说明

文件夹页左侧目录树固定为 w-64,层级较深或名称较长的文件夹会被截断,无法看清完整名称。
image

本 PR 让目录树支持拖拽调整宽度:

  • 目录树与歌曲列表之间原有的 12px 间隙作为拖拽分隔条,悬停 / 拖动时显示高亮竖线;双击恢复默认宽度 256px
  • 宽度限制在 200–640px,且不超过页面宽度的 50%,保证歌曲列表可用空间
  • 宽度持久化到 settings.appearance.folderTreeWidth;拖动过程只更新页面本地 ref,松手后才写入设置,避免每帧触发 localStorage 持久化
  • 使用 setPointerCapture + lostpointercapture 收尾,拖出窗口或 pointercancel 时也能正确结束
  • 文件夹名称增加 title,截断时悬停可查看全名

关联 Issue

无

测试情况

  • pnpm typecheck(node + web)通过
  • 改动文件 ESLint / Prettier 通过
  • 待手动验证:文件夹页拖动分隔条调整宽度、双击恢复默认、重启后宽度保持

自查清单

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

This branch has not been deployed

No deployments
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