refactor(editing-planner): 拆分 useTimelineMenus 为子Hook(192→67行, -65%) #1093
Reference in New Issue
Block a user
Delete Branch "refactor/use-timeline-menus"
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?
变更说明
将 useTimelineMenus Hook 拆分为两个子 Hook,主文件从 192 行减至 67 行(-65%)。
拆分结构
兼容性
9a9211ef86toc726fc61c0c726fc61c0tod79a652c69CI全绿,自动审批通过。
🚀 预览环境已部署
代码审查结果 - PR #1093
⚠️ 问题(2个需要修改)
return语句未闭合。这将导致语法错误,且无法确认是否正确返回了hoveredClipId、setHoveredClipId等原有状态,会导致组件运行时崩溃或功能丢失。handleClickOutside仅判断了点击是否在pickerRef内部,未排除触发按钮addCardRef。当用户点击触发按钮试图关闭弹窗时,会先触发“点击外部”关闭弹窗,随后触发按钮的onClick重新打开弹窗,导致无法通过再次点击按钮关闭弹窗(产生闪烁或无效交互)。💡 建议(2个可选)
e.clientX/Y,未做边界检测。若用户在屏幕右下角右键,菜单可能会超出视口。建议参考useAddPicker的边界计算逻辑。showAddPicker变化时触发。若用户在弹窗打开时调整窗口大小,弹窗位置不会更新,可能导致遮挡。建议增加resize事件监听。✅ 格式检查通过 | ❌ 逻辑审查需修改 | ⚠️ 建议关注性能
🤖 由 AI 代码审查机器人自动生成 | 2026-07-28 08:42:47 | 模型: