import React, { useState } from 'react'; import { Upload, CheckCircle2, Circle } from 'lucide-react'; import TrimModal from './TrimModal'; const LANGUAGES = [ { code: 'ar', name: 'Arabic', group: 'A' }, { code: 'zh', name: 'Chinese', group: 'C' }, { code: 'yue', name: 'Cantonese', group: 'C' }, { code: 'cs', name: 'Czech', group: 'C' }, { code: 'zh-TW', name: 'Traditional Chinese', group: 'T' }, { code: 'th', name: 'Thai', group: 'T' }, { code: 'tr', name: 'Turkey', group: 'T' }, { code: 'nl', name: 'Dutch', group: 'D' }, { code: 'en', name: 'English', group: 'E' }, { code: 'ru', name: 'Russian', group: 'R' }, { code: 'ro', name: 'Romanian', group: 'R' }, { code: 'ja', name: 'Japanese', group: 'J' }, { code: 'ko', name: 'Korean', group: 'K' }, { code: 'ms', name: 'Malay', group: 'M' }, { code: 'fr', name: 'French', group: 'F' }, ]; export default function UploadScreen({ onUpload }: { onUpload: (file: File, lang: string, startTime?: number, endTime?: number) => void }) { const [mode, setMode] = useState<'editing' | 'simple'>('editing'); const [selectedLang, setSelectedLang] = useState('en'); const [showTrimModal, setShowTrimModal] = useState(false); const [tempFile, setTempFile] = useState(null); const handleFileChange = (e: React.ChangeEvent) => { if (e.target.files && e.target.files[0]) { setTempFile(e.target.files[0]); setShowTrimModal(true); } }; const handleTrimConfirm = (file: File, startTime: number, endTime: number) => { setShowTrimModal(false); const langName = LANGUAGES.find(l => l.code === selectedLang)?.name || 'English'; onUpload(file, langName, startTime, endTime); }; return (
{/* Left: Upload Area */}

Click to upload or drag files here

Supported formats: MP4/MOV/WEBM. Maximum file size is 500MB.

{/* Right: Settings */}
{/* Mode Selection */}
setMode('editing')} >
{mode === 'editing' ? ( ) : ( )} Editing Mode

Supports secondary editing and more precise translation

setMode('simple')} >
{mode === 'simple' ? ( ) : ( )} Simple Mode

One-click video translation for beginners

{/* Language Selection */}

Select Translation Language

AI detect video source language automatically.

{/* Alphabet Tabs */}
{/* Language List */}
{['A', 'C', 'T', 'D', 'E', 'R', 'J', 'K', 'M', 'F'].map((letter) => (
{letter}
{LANGUAGES.filter((l) => l.group === letter).map((lang) => ( ))}
))}
{showTrimModal && tempFile && ( setShowTrimModal(false)} onConfirm={handleTrimConfirm} /> )}
); }