@@ -1,32 +0,0 @@
|
||||
/**
|
||||
* EditingPlanner 配音素材数据加载
|
||||
* queryKey 与 VoiceMaterialLibrary 共享缓存
|
||||
*/
|
||||
import { useQuery } from "@tanstack/react-query"
|
||||
import { ensureDefaultLibrary, getAssetsByKind, type AssetItem } from "@/api/assets"
|
||||
import { getOrCreateDefaultProject } from "@/api/projects"
|
||||
|
||||
export interface UseVoiceMaterialsReturn {
|
||||
voiceMaterials: AssetItem[]
|
||||
loading: boolean
|
||||
refetch: () => Promise<unknown>
|
||||
}
|
||||
|
||||
export const useVoiceMaterials = (): UseVoiceMaterialsReturn => {
|
||||
const query = useQuery({
|
||||
queryKey: ["assets", "voice"],
|
||||
queryFn: async () => {
|
||||
const project = await getOrCreateDefaultProject()
|
||||
await ensureDefaultLibrary({ project_id: project.id, kind: "voice" })
|
||||
const assets = await getAssetsByKind("voice")
|
||||
return assets
|
||||
},
|
||||
staleTime: 30_000,
|
||||
})
|
||||
|
||||
return {
|
||||
voiceMaterials: query.data ?? [],
|
||||
loading: query.isLoading,
|
||||
refetch: query.refetch,
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user