cherry-studio/src/renderer/src/hooks/video/useAddOpenAIVideo.ts
icarus 85daceb417 feat(video): add video deletion functionality
implement video deletion for openai provider
add i18n strings for deletion states and errors
update video list ui to support deletion
handle pending states during deletion
2025-10-13 21:52:48 +08:00

66 lines
1.5 KiB
TypeScript

import OpenAI from '@cherrystudio/openai'
import { useCallback } from 'react'
import { useProviderVideos } from './useProviderVideos'
export const useAddOpenAIVideo = (providerId: string) => {
const { addVideo } = useProviderVideos(providerId)
const addOpenAIVideo = useCallback(
(video: OpenAI.Videos.Video, prompt: string) => {
switch (video.status) {
case 'queued':
addVideo({
id: video.id,
name: video.id,
providerId,
status: video.status,
type: 'openai',
metadata: video,
prompt
})
break
case 'in_progress':
addVideo({
id: video.id,
name: video.id,
providerId,
status: 'in_progress',
type: 'openai',
progress: video.progress,
metadata: video,
prompt
})
break
case 'completed':
addVideo({
id: video.id,
name: video.id,
providerId,
status: 'completed',
type: 'openai',
metadata: video,
prompt,
thumbnail: null
})
break
case 'failed':
addVideo({
id: video.id,
name: video.id,
providerId,
status: 'failed',
type: 'openai',
error: video.error,
metadata: video,
prompt
})
break
}
},
[addVideo]
)
return addOpenAIVideo
}