refactor(web): 智能剪辑 & AI数字人 前端代码审查与重构 #1883
Reference in New Issue
Block a user
Delete Branch "refactor/frontend-audit-cleanup-0914"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
重构范围
仅限「智能剪辑」(apps/web/src/pages/generate/)与「AI数字人」(apps/web/src/pages/ai-avatar/)前端代码,严格遵守:不增删功能、不破坏功能、不改变 UI/交互、不改变接口契约、不改变路由路径。
改动点
P1 死代码/冗余代码删除
hooks/useCanvasPlayer.ts(1039 行):WebCodecs 播放路径早已废弃(useWebCodecs 恒为 false,生产代码零 import),该文件是纯粹死代码。同步清理 FrontendPreviewPlayer 中相关条件分支、isWebCodecsSupported判断、LoadingOutlined图标引用,以及测试文件中对应的 vi.mock。P2 解耦
P3 大文件/大组件拆分(FrontendPreviewPlayer)
原文件 1121 行 → 主文件 601 行 + 3 个独立模块:
hooks/usePreviewAudio.ts(132 行):配音音频管理 hook,封装 audio 元素生命周期、loadedmetadata 时长自测、play/pause/seek 同步、末帧冻结期间续播。components/PreviewProgressBar.tsx(107 行):进度条组件,独立封装点击/拖拽 seek 逻辑。components/PreviewControls.tsx(195 行):播放控制 UI,封装静音按钮、片段指示器胶囊、中央播放按钮、底部毛玻璃控制条。P4 规范改进
未改动(已审查确认)
验证结果
npx tsc --noEmit:零类型错误npx eslint src/pages/generate/ --ext .ts,.tsx --max-warnings 0:零错误零警告npx eslint src/pages/ai-avatar/ --ext .ts,.tsx --max-warnings 0:零错误零警告npx prettier --check "src/pages/generate/**/*.{ts,tsx}":格式正确npx prettier --check "src/pages/ai-avatar/**/*.{ts,tsx}":格式正确npx vitest run src/test/pages/generate/ --reporter=verbose:12 个测试文件、64 个测试全部通过(含 FrontendPreviewPlayer 音频行为 8 个测试、CanvasPreviewGrid 播放互斥 6 个测试)Commit 拆分
refactor(web): FrontendPreviewPlayer 拆分 - 删除WebCodecs死代码、拆分usePreviewAudio/PreviewProgressBar/PreviewControlsrefactor(web): 删除死代码 useCanvasPlayer(WebCodecs废弃路径,1039行零生产引用)refactor(web): 清理 ai-avatar 遗留 debug console.log(6处)chore(web): prettier 格式化收尾🚀 预览环境已部署
CI全绿,自动审批通过。
CI全绿,自动审批通过。
🗑️ 预览环境已清理
PR #1883 已关闭或合并,对应的预览环境已被清理。