Skip to content

refactor(ui): migrate shadcn primitives to Base UI - #783

Merged
caorushizi merged 3 commits into
masterfrom
codex/base-ui-shadcn
Oct 24, 2026
Merged

caorushizi merged 3 commits into
masterfrom
codex/base-ui-shadcn

Conversation

@caorushizi

@caorushizi caorushizi commented Oct 24, 2026 •

Copy link
Copy Markdown
Member

将主界面、播放器和扩展的 shadcn 基础层迁移到 @base-ui/react@1.9.0,并将主界面、扩展弹窗及设置页的 Sonner 替换为 shadcn Base UI Toast。保留现有主题、控件尺寸、通知位置与产品流程。

改动

  • 三个 components.json 改为 base-nova,官方 shadcn CLI 确认识别为 Base UI;删除全部 Radix/Vaul/Sonner 直接依赖及锁文件节点。
  • 迁移按钮组合、徽章、头像、复选框、单选、开关、进度条、Dialog/Sheet、Select、菜单、预览卡片、Tooltip 和滚动区域;调用方改用 render 组合。
  • 保留本地化标签、全选半选、菜单动作、键盘导航和弹窗焦点恢复,统一可点击与禁用光标。
  • 设置问号和统计说明使用 Base UI Popover 信息浮层,支持悬停、点击、键盘访问及隐私政策按钮。
  • 依照 shadcn Base UI Toast,将 68 处消息调用迁移为 toast.add(...),保留顶部居中、约 2.4 秒自动关闭,支持状态图标、关闭、堆叠展开、悬停/聚焦暂停、F6 键盘访问及滑动关闭。
  • 通知管理器先挂载,再挂载应用,避免初始化期间的下载/分享错误消息丢失。关闭按钮和通知区域提供中、英、意三种语言标签,长消息可在窄屏换行。
  • 规范化 Windows/Linux 的 Vite 夹具地址,防止同一入口因双斜杠加载两次;增加重复挂载与运行时异常检查。滑动关闭时使用抓取/抓取中光标,动作按钮保持点击光标。
  • 原生 HTML 控件按原有用途保留;移除无调用方的旧 Drawer 封装。

本地验证

  • 前端 Vitest:72 个文件、596 项测试通过;最后修改涉及的下载事件与错误通知回归 16 项再次通过。
  • Chromium:基础组件、TalkingData 同意/撤回,以及两套 Toast 的真实交互回归共 17 项通过,覆盖启动消息、四种状态、动作只执行一次、关闭后焦点恢复、下载弹窗、悬停暂停、堆叠限制/展开、滑动、窄屏长消息和深色主题。
  • 全工作区类型、E2E 类型、格式和代码检查通过;正常提交钩子及 git diff --check 通过。
  • 桌面渲染器、Web、播放器和扩展构建通过。
  • pnpm security:js:0 项低/中/高/严重告警。
  • 既有迁移的 pnpm one:verify:74 项任务映射和 mise 同步核验通过;Toast 后续提交未改动项目脚本。

Windows 本地全量测试中,8 个工具链/路径相关文件的 25 项失败已在未改动的 master 上复现;本次前端相关测试均通过。

GitHub 验证

最新提交 b682070d42eebc6a701b27f34b8e25dec412c630 的全部 15 项检查通过。

  • Validate MediaGo:8 项作业全部通过。完整 TypeScript 套件 172 个文件、1718 项测试通过,保留原有 1 个文件/12 项测试跳过;Go、真实本地下载集成与质量检查通过。
  • Web 19 项、Electron 12 项、扩展 7 项 E2E 全部通过;保留原有超时、重试和网络隔离门禁。
  • Security checks:6 项作业全部通过,覆盖依赖审计、三种语言 CodeQL、原生 AMD64/ARM64 镜像完整构建、架构核验及启动验证。
  • CodeQL 汇总确认本 PR 改动没有新增告警。

关联 #771、#772,两条 Radix 升级 PR 按用户要求继续保持开放。

截图

实际统计说明组件,键盘打开后可访问隐私政策:

Base UI statistics information

新的 Base UI Toast,使用本地回归样本触发:

Base UI toast

@caorushizi
caorushizi marked this pull request as ready for review October 24, 2026 11:28
Copilot AI balanced review requested due to automatic review settings October 24, 2026 11:28

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota.

@caorushizi
caorushizi merged commit 3e206c3 into master Oct 24, 2026
15 checks passed
@caorushizi
caorushizi deleted the codex/base-ui-shadcn branch October 24, 2026 16:47
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.

2 participants