From eba370210fa07514ac4ae6842fd245e72e4bbcac Mon Sep 17 00:00:00 2001 From: icarus Date: Sun, 12 Oct 2025 17:17:35 +0800 Subject: [PATCH] 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 --- .../src/hooks/video/useOpenAIVideo.ts | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 src/renderer/src/hooks/video/useOpenAIVideo.ts diff --git a/src/renderer/src/hooks/video/useOpenAIVideo.ts b/src/renderer/src/hooks/video/useOpenAIVideo.ts new file mode 100644 index 0000000000..f67e3fd87e --- /dev/null +++ b/src/renderer/src/hooks/video/useOpenAIVideo.ts @@ -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 + } +}