import { useState, useEffect } from "react" import { useQuery } from "@tanstack/react-query" import { getAssets, getAssetLibraries } from "@/api/assets" import type { AssetItem } from "@/api/assets" /** * 素材库加载 Hook * 管理素材库列表、当前选中库、素材列表加载 */ export function useMaterialLibrary() { /* ── 素材库数据 API ── */ const { data: libraries = [] } = useQuery({ queryKey: ["asset-libraries"], queryFn: getAssetLibraries, }) const [selectedLibraryId, setSelectedLibraryId] = useState("") // 自动选中第一个视频库 useEffect(() => { if (libraries.length > 0 && !selectedLibraryId) { setSelectedLibraryId(libraries[0].id) } }, [libraries, selectedLibraryId]) const { data: materials = { items: [], total: 0 }, isLoading: materialsLoading } = useQuery<{ items: AssetItem[] total: number }>({ queryKey: ["generate-assets", selectedLibraryId], queryFn: () => getAssets(selectedLibraryId), enabled: !!selectedLibraryId, }) return { libraries, selectedLibraryId, setSelectedLibraryId, materials, materialsLoading, } }