"use client"; import { useState } from 'react'; import { Card, CardContent } from '@/components/ui/card'; import { Button } from '@/components/ui/button'; import { Badge } from '@/components/ui/badge'; import { Progress } from '@/components/ui/progress'; import { Separator } from '@/components/ui/separator'; import { ArrowLeft, ArrowRight, FileText, Users, Film, Music, Video, CheckCircle, } from 'lucide-react'; import { InputScriptStep } from '@/components/workflow/input-script-step'; import { GenerateChaptersStep } from '@/components/workflow/generate-chapters-step'; import { GenerateShotsStep } from '@/components/workflow/generate-shots-step'; import { AddMusicStep } from '@/components/workflow/add-music-step'; import { FinalCompositionStep } from '@/components/workflow/final-composition-step'; const steps = [ { id: 1, name: 'Input Script', icon: FileText, description: 'Enter your script and settings' }, { id: 2, name: 'Generate Chapters', icon: Users, description: 'AI splits script and assigns actors' }, { id: 3, name: 'Generate Shots', icon: Film, description: 'Create storyboard and scenes' }, { id: 4, name: 'Add Music', icon: Music, description: 'Background music and audio' }, { id: 5, name: 'Final Video', icon: Video, description: 'Compose and export video' }, ]; export function CreateVideoWorkflow() { const [currentStep, setCurrentStep] = useState(1); const [completedSteps, setCompletedSteps] = useState([]); const handleNext = () => { if (currentStep < steps.length) { setCompletedSteps([...completedSteps, currentStep]); setCurrentStep(currentStep + 1); } }; const handlePrevious = () => { if (currentStep > 1) { setCurrentStep(currentStep - 1); } }; const handleStepClick = (stepId: number) => { if (stepId <= currentStep || completedSteps.includes(stepId)) { setCurrentStep(stepId); } }; const renderStepContent = () => { switch (currentStep) { case 1: return ; case 2: return ; case 3: return ; case 4: return ; case 5: return ; default: return null; } }; const progress = ((currentStep - 1) / (steps.length - 1)) * 100; return (
{/* Header */}

Create AI Video

Follow these steps to create your AI-powered video. You can navigate back and forth to make changes.

{/* Steps Navigation */}
{steps.map((step, index) => (
handleStepClick(step.id)} >
{completedSteps.includes(step.id) ? ( ) : ( )}
{step.name}
{step.description}
{index < steps.length - 1 && ( )}
))}
{/* Step Content */}
{renderStepContent()}
); }