mirror of
https://github.com/CherryHQ/cherry-studio.git
synced 2026-01-04 20:00:00 +08:00
feat(video): add useOpenAIVideo hook for fetching video data
Implement a custom hook using SWR to fetch and manage OpenAI video data with revalidation capabilities
This commit is contained in:
parent
697ef22ab6
commit
eba370210f
28
src/renderer/src/hooks/video/useOpenAIVideo.ts
Normal file
28
src/renderer/src/hooks/video/useOpenAIVideo.ts
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
import { retrieveVideo } from '@renderer/services/ApiService'
|
||||||
|
import { SystemProviderIds } from '@renderer/types'
|
||||||
|
import useSWR, { useSWRConfig } from 'swr'
|
||||||
|
|
||||||
|
import { useProvider } from '../useProvider'
|
||||||
|
|
||||||
|
export const useOpenAIVideo = (id: string) => {
|
||||||
|
const { provider: openai } = useProvider(SystemProviderIds.openai)
|
||||||
|
const fetcher = async () => {
|
||||||
|
return retrieveVideo({
|
||||||
|
type: 'openai',
|
||||||
|
videoId: id,
|
||||||
|
provider: openai
|
||||||
|
})
|
||||||
|
}
|
||||||
|
const { data, isLoading, error } = useSWR(`video/openai/${id}`, fetcher, {
|
||||||
|
revalidateOnFocus: false,
|
||||||
|
revalidateOnMount: true
|
||||||
|
})
|
||||||
|
const { mutate } = useSWRConfig()
|
||||||
|
const revalidate = () => mutate(`video/openai/${id}`)
|
||||||
|
return {
|
||||||
|
video: data,
|
||||||
|
isLoading,
|
||||||
|
error,
|
||||||
|
revalidate
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue
Block a user