feat(#1197): Phase1 预览生成前端改造 #1206
Reference in New Issue
Block a user
Delete Branch "fix/preview-generation-phase1-1197"
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?
变更内容
1. API 层新增 generation 模块
src/api/generation/目录(index.ts / preview.ts / types.ts)PreviewStatus/CreatePreviewRequest/CreatePreviewResponse/PreviewTaskResponsecreatePreview— POST/generation/preview创建预览任务getPreviewStatus— GET/generation/preview/{task_id}查询状态2. useStep3Preview Hook 重写
3. Step3GeneratePreview 组件升级
4. 右侧预览常驻
PreviewVideoPanel组件5. 竖屏比例默认值调整
videoRatio默认值从16:9改为9:166. 测试
关联 Issue
#1197
依赖
/generation/preview接口(#1197 后端 PR)🚀 预览环境已部署
fc917ab58ctoa1505a9f61CI全绿,自动审批通过。
CI全绿,自动审批通过。
代码审查结果 - PR #1206
⚠️ 问题(2个需要修改)
apps/web/src/pages/generate/hooks/useStep3Preview.ts 第107-120行:竞态条件处理不完整,导致参数变更后旧任务仍能更新状态。
useEffect中,仅重置了currentTaskIdRef和定时器,但未重置startTimeRef。createPreview请求期间修改了参数,useEffect会触发重置,但由于startTimeRef仍保留旧值,generatePreview函数中的竞态检查if (startTimeRef.current === 0)会失效。导致已废弃的旧任务请求返回后,依然会覆盖当前状态并启动轮询,造成 UI 显示与用户当前选择不一致的数据。startTimeRef.current = 0;。apps/web/pnpm-workspace.yaml 第2行:配置文件语法/值错误。
esbuild字段的值为字符串"set this to true or false",这通常是占位符注释,而非有效的布尔值或配置对象。true或false,如果暂不确定,应正确注释掉或设置为默认值。💡 建议(1个可选)
videoUrl可能为空字符串(来自data.video_url ?? ""),直接赋值给<video src="">可能导致浏览器尝试加载当前页面或产生无效请求。建议在渲染<video>前判断previewResult.videoUrl是否有值。✅ 格式检查通过 | ❌ 逻辑审查需修改 | ✅ 性能良好
🤖 由 AI 代码审查机器人自动生成 | 2026-08-01 06:19:27 | 模型:
🗑️ 预览环境已清理
PR #1206 已关闭或合并,对应的预览环境已被清理。