From 5fb99759135df6fcf683afe2c36773ffc18adb73 Mon Sep 17 00:00:00 2001 From: xiaoxia Date: Wed, 2 Sep 2026 15:00:34 +0800 Subject: [PATCH] =?UTF-8?q?feat(assets):=20=E7=B4=A0=E6=9D=90=E5=BA=93?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=E5=8A=A0=E8=BD=BD=E6=97=B6=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E5=88=9B=E5=BB=BA=E9=BB=98=E8=AE=A4=20video=20=E5=BA=93=20(#16?= =?UTF-8?q?26)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: xiaoxia Co-committed-by: xiaoxia --- apps/web/src/pages/assets/hooks/useAssetsData.ts | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/apps/web/src/pages/assets/hooks/useAssetsData.ts b/apps/web/src/pages/assets/hooks/useAssetsData.ts index 4ec192400..61074e30c 100644 --- a/apps/web/src/pages/assets/hooks/useAssetsData.ts +++ b/apps/web/src/pages/assets/hooks/useAssetsData.ts @@ -3,9 +3,11 @@ import { useQuery } from "@tanstack/react-query" import { getAssetLibraries, getAssets, + ensureDefaultLibrary, type AssetLibraryItem, type AssetItem as ApiAssetItem, } from "@/api/assets" +import { getOrCreateDefaultProject } from "@/api/projects" import { mapLibrary, mapAsset, type AssetItem, type LibraryItem } from "../types" /** @@ -16,7 +18,18 @@ export function useAssetsData() { /* ── 视频库列表查询 ── */ const { data: apiLibraries = [], isLoading: libLoading } = useQuery({ queryKey: ["asset-libraries"], - queryFn: getAssetLibraries, + queryFn: async () => { + const libs = await getAssetLibraries() + // 如果没有 video 类型的库,自动创建默认视频素材库(与 useVoiceMaterials 保持一致) + const hasVideoLib = libs.some((lib) => lib.kind === "video") + if (!hasVideoLib) { + const project = await getOrCreateDefaultProject() + await ensureDefaultLibrary({ project_id: project.id, kind: "video" }) + // 创建后重新拉取最新列表 + return getAssetLibraries() + } + return libs + }, staleTime: 60_000, })