refactor(TimelinePanel): 时间线面板拆分(317→226行, -29%) #1178
Reference in New Issue
Block a user
Delete Branch "refactor/timeline-panel-split"
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?
拆分内容
TimelinePanel 组件继续细化拆分,提取子组件和 Hook:
新增组件(timeline/):
新增 Hook(timeline/hooks/):
变更说明
🚀 预览环境已部署
CI全绿,自动审批通过。
CI全绿,自动审批通过。
【阻塞级判定】
📊 审查概览
🔴 阻塞级问题(必须修复)
无
💡 改进建议(不阻塞合并)
[apps/web/src/pages/editing-planner/components/timeline/hooks/usePlayheadDrag.ts:18] 未使用的参数
UsePlayheadDragOptions中定义了currentTime,但在函数实现中未被解构使用。建议移除该参数以避免混淆和潜在的 lint 警告。[apps/web/src/pages/editing-planner/components/TimelinePanel.tsx:126] 逻辑冗余
handleUndoClip函数内部检查了clips.length > 1,而TimelineHeader组件中按钮的disabled属性也基于clipsCount <= 1进行了控制。虽然双重检查保证了安全性,但为了代码简洁,可以移除handleUndoClip内部的检查,完全依赖按钮的disabled状态(前提是该函数仅被按钮调用)。✅ 良好实践
TimelinePanel中庞大的 JSX 和逻辑拆分为TimelineHeader、ClipTrack和usePlayheadDrag,显著提升了代码的可维护性和可读性。trackRef并传递给子组件ClipTrack进行挂载,模式使用正确。handleMouseMove中添加了if (!trackEl) return检查,有效避免了潜在的空引用错误。✅ 格式检查通过 | ✅ 逻辑审查通过 | ✅ 性能无明显问题
🤖 由 AI 代码审查机器人自动生成 | 2026-07-30 02:21:13 | 模型:
🗑️ 预览环境已清理
PR #1178 已关闭或合并,对应的预览环境已被清理。