import React, { useState, useCallback } from 'react'; const VideoGeneratorForm = ({ onGenerate }) => { const [prompt, setPrompt] = useState(''); const [duration, setDuration] = useState(15); // Default 15 seconds const [loading, setLoading] = useState(false); const handleSubmit = useCallback(async (e) => { e.preventDefault(); if (!prompt.trim()) { alert("Please enter a text prompt."); return; } setLoading(true); onGenerate({ status: 'loading' }); try { const response = await fetch('/api/generate', { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ prompt, duration }), }); const data = await response.json(); if (response.ok) { onGenerate({ status: 'success', data }); } else { onGenerate({ status: 'error', error: data.error || 'Generation failed.' }); } } catch (error) { console.error('API Error:', error); onGenerate({ status: 'error', error: 'Network error or service unavailable.' }); } finally { setLoading(false); } }, [prompt, duration, onGenerate]); return (
); }; export default VideoGeneratorForm;