refactor(generate): 拆分 Step6CoverSettings 为子组件(187→109行, -42%) #1097
Reference in New Issue
Block a user
Delete Branch "refactor/step6-cover-settings"
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?
变更说明
将 Step6CoverSettings 拆分为 3 个子组件,主文件从 187 行精简到 109 行(-42%)。
拆分结构
三阶段拆分
兼容性
12688cd00etof4ed07deddCI全绿,自动审批通过。
🚀 预览环境已部署
【阻塞级判定】
📊 审查概览
🔴 阻塞级问题(必须修复)
无
💡 改进建议(不阻塞合并)
[UploadCoverPicker.tsx: 21] 避免使用全局 ID 获取 DOM 元素
document.getElementById("cover-upload-input")触发文件选择。这在组件复用或页面存在多个实例时会导致 ID 冲突(例如同时打开两个编辑窗口)。建议使用 React 的useRef来引用 DOM 元素,确保组件封装性。[CoverModeSelector.tsx: 14] 硬编码的模式列表
modes数组是硬编码的["auto", "frame", "upload"]。如果CoverMode类型定义增加新值(如 "ai"),此处组件不会自动渲染新选项,容易导致 UI 与类型定义不同步。建议考虑从类型或配置中派生此列表。✅ 良好实践
Step6CoverSettings中的大段 JSX 拆分为CoverModeSelector、FrameCoverPicker和UploadCoverPicker,显著提升了代码的可读性和可维护性。FrameCoverPicker中保留了Math.max(totalDuration, 1)的逻辑,有效防止了除零或无效时长导致的滑块异常。🤖 由 AI 代码审查机器人自动生成 | 2026-07-28 09:02:41 | 模型: