feat(assets): 素材库页面加载时自动创建默认 video 库 #1626
Reference in New Issue
Block a user
Delete Branch "feat/auto-create-video-library"
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?
问题
新用户首次进入素材库页面时,如果项目下没有 video 类型的素材库,前端只展示空列表,用户无法上传视频。
修复
在
useAssetsData.ts的库列表查询queryFn中,拉取库列表后检查是否存在 video 类型的库。如果不存在,自动调用ensureDefaultLibrary({ project_id, kind: "video" })创建默认视频素材库,然后重新拉取最新列表。与
useVoiceMaterials.ts中 voice 类型的自动创建逻辑保持一致。改动
apps/web/src/pages/assets/hooks/useAssetsData.ts:queryFn 增加自动创建 video 库的逻辑🚀 预览环境已部署
代码审查结果 - PR #1626
⚠️ 问题(2个需要修改)
queryFn中执行副作用(创建数据),违反了 React Query 的设计原则,存在严重的数据损坏和竞态条件风险。ensureDefaultLibrary(写操作)放在此处,意味着每次组件挂载或缓存失效时都可能触发创建请求。ensureDefaultLibrary返回后立即调用getAssetLibraries,假设后端数据库是强一致性的。💡 建议(1个可选)
ensureDefaultLibrary接口直接返回创建后的库对象,避免二次请求。✅ 格式检查通过 | ❌ 逻辑审查需修改 | ⚠️ 建议关注性能
🤖 由 AI 代码审查机器人自动生成 | 2026-09-02 06:43:56 | 模型:
CI全绿,自动审批通过。
CI全绿,自动审批通过。
🗑️ 预览环境已清理
PR #1626 已关闭或合并,对应的预览环境已被清理。