import React, { useState } from 'react'; import { UploadCloud, FileText, Settings, ArrowRight, CheckCircle2 } from 'lucide-react'; import { motion } from 'framer-motion'; import axios from 'axios'; import { API_BASE_URL } from '../config'; const UploadView = ({ onUploadComplete }) => { const [resume, setResume] = useState(null); const [excel, setExcel] = useState(null); const [smtpEmail, setSmtpEmail] = useState(""); const [smtpPassword, setSmtpPassword] = useState(""); const [loading, setLoading] = useState(false); const handleUpload = async () => { if (!resume || !excel) { alert("Please provide both Resume and Excel files."); return; } setLoading(true); const formData = new FormData(); formData.append("resume", resume); formData.append("company_excel", excel); try { const res = await axios.post(`${API_BASE_URL}/upload`, formData); // Pass minimal data needed for generator + generic SMTP creds storage (in state) onUploadComplete({ ...res.data, smtpEmail, smtpPassword }); } catch (err) { console.error(err); alert("Upload failed."); } finally { setLoading(false); } }; return (

Configure Campaign

Upload your data sources to initialize the AI agent.

{/* Card 1: Company List */}

Company Data

setExcel(e.target.files[0])} className="hidden" id="excel-upload" />
{/* Card 2: Resume */}

Your Resume

setResume(e.target.files[0])} className="hidden" id="resume-upload" />
{/* Card 3: Email Config */}

Sender Config

setSmtpEmail(e.target.value)} className="w-full bg-slate-50 border border-slate-200 rounded-lg px-3 py-2 text-sm text-slate-900 focus:outline-none focus:border-indigo-500" /> setSmtpPassword(e.target.value)} className="w-full bg-slate-50 border border-slate-200 rounded-lg px-3 py-2 text-sm text-slate-900 focus:outline-none focus:border-indigo-500" />
SMTP Disconnected
); }; export default UploadView;