fix(voice): 修复克隆音色弹窗「选文件无反应」死锁(isSubmittingRef 三处误用) #1541
Reference in New Issue
Block a user
Delete Branch "fix/clone-modal-submit-lock"
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?
背景
克隆音色弹窗:打开后上传/选择音频无任何反应、无提示。浏览器实测确认。
根因
isSubmittingRef是handleSubmit的提交防重入锁,但被错误写进了三处不该用的地方:resetState(弹窗 open 时 useEffect 调用):上锁后永不复位 → 弹窗每次打开即死锁handleFileChangeelse 分支(文件校验通过后):检查到锁直接 return → 选文件被静默拦截handleDropelse 分支:同上,拖拽也被拦截且这三处上锁后都没有解锁路径。
改动(仅 CloneModal/index.tsx,删 6 行)
if (isSubmittingRef.current) return+isSubmittingRef.current = truehandleSubmit内锁逻辑保持原样(入口上锁、成功/catch 复位)验收
🚀 预览环境已部署
CI全绿,自动审批通过。
CI全绿,自动审批通过。
【阻塞级判定】
📊 审查概览
🔴 阻塞级问题(必须修复)
无
💡 改进建议(不阻塞合并)
无
✅ 良好实践
isSubmittingRef在resetState中被错误设置且无复位路径导致弹窗死锁的问题,将锁的作用域严格收窄至handleSubmit,逻辑修复正确。✅ 格式检查通过 | ✅ 逻辑审查通过 | ✅ 性能良好
🤖 由 AI 代码审查机器人自动生成 | 2026-08-29 09:30:23 | 模型:
🗑️ 预览环境已清理
PR #1541 已关闭或合并,对应的预览环境已被清理。