import { ExternalLink, Video } from "lucide-react"; import { Badge } from "@/components/ui/badge"; import { BifrostVideoDownloadOutput, BifrostVideoGenerationOutput, BifrostVideoListOutput } from "@/lib/types/logs"; import CollapsibleBox from "./collapsibleBox"; import { CodeEditor } from "@/components/ui/codeEditor"; interface VideoGenerationInput { prompt: string; } type VideoOutput = BifrostVideoGenerationOutput | BifrostVideoDownloadOutput; interface VideoViewProps { videoInput?: VideoGenerationInput; videoOutput?: VideoOutput; videoListOutput?: BifrostVideoListOutput; requestType?: string; } function getMethodTypeLabel(requestType?: string): string { if (!requestType) return "Video"; const normalized = requestType.toLowerCase(); if (normalized.includes("video_download")) return "Video Download"; if (normalized.includes("video_retrieve")) return "Video Retrieve"; if (normalized.includes("video_generation")) return "Video Generation"; if (normalized.includes("video_list")) return "Video List"; return "Video"; } export default function VideoView({ videoInput, videoOutput, videoListOutput, requestType }: VideoViewProps) { const methodTypeLabel = getMethodTypeLabel(requestType); const isDownload = requestType?.toLowerCase().includes("video_download"); const downloadOutput = isDownload && videoOutput ? (videoOutput as BifrostVideoDownloadOutput) : null; const generationOutput = !isDownload && videoOutput ? (videoOutput as BifrostVideoGenerationOutput) : null; const outputURL = generationOutput?.videos?.[0]?.url; return (
Video content was successfully downloaded (content is not stored in logs)
> ) : generationOutput ? ( <>