import React, { useState, useEffect } from 'react'; import { RefreshCw, Check, X, Send, Edit, Copy } from 'lucide-react'; import axios from 'axios'; import { API_BASE_URL } from '../config'; const GeneratorView = ({ uploadData }) => { const [generatedEmails, setGeneratedEmails] = useState([]); const [selectedEmailIndex, setSelectedEmailIndex] = useState(0); const [loading, setLoading] = useState(false); const [sending, setSending] = useState(false); useEffect(() => { if (uploadData && generatedEmails.length === 0) { generateEmails(); } }, [uploadData]); const generateEmails = async () => { setLoading(true); try { const res = await axios.post(`${API_BASE_URL}/generate-emails`, { resume_filename: uploadData.resume_filename, excel_filename: uploadData.excel_filename }); setGeneratedEmails(res.data.emails); } catch (e) { console.error(e); alert("Error generating emails"); } finally { setLoading(false); } }; const handleSendCurrent = async () => { // Logic to send single email or push to queue if (!uploadData.smtpEmail || !uploadData.smtpPassword) { alert("Missing SMTP Credentials. Go back to Upload."); return; } const current = generatedEmails[selectedEmailIndex]; setSending(true); try { const payload = { emails: [{ to: current.hr_email, subject: current.email.split('\n')[0].replace("Subject: ", ""), // Simple extraction body: current.email }], smtp_email: uploadData.smtpEmail, smtp_password: uploadData.smtpPassword, resume_filename: uploadData.resume_filename // Pass filename for attachment }; await axios.post(`${API_BASE_URL}/send-bulk-emails`, payload); alert(`Email sent to ${current.company}`); } catch (e) { console.error(e); alert("Sending failed."); } finally { setSending(false); } }; if (!uploadData) return (
{item.hr_email}
Subject