import React from "react"; import Button from "@material-ui/core/Button"; import { useState } from "react"; import toast from "react-hot-toast"; import { CFormInput, CFormLabel, CCol, CRow } from "@coreui/react"; import axios from "axios"; import { isAutheticated } from "src/auth"; const ContactDetails = ({ props }) => { const token = isAutheticated(); const { data, setData, handleView } = props; const [dataEntryMethod, setDataEntryMethod] = useState("manual"); const [csvData, setCsvData] = useState([]); const addRecord = () => { setData((prevData) => ({ ...prevData, recipients: [...prevData.recipients, { name: "", contact: "" }], })); }; const handleSpreadSheet = (e) => { const file = e.target.files[0]; if (file) { const reader = new FileReader(); reader.onload = (event) => { const csvData = event.target.result; const rows = csvData.split("\n"); const extractedData = []; for (let i = 0; i < rows.length; i++) { const row = rows[i].split(","); if (row.length >= 2) { const name = row[0].trim(); const contact = row[1].trim(); if (name && contact) { extractedData.push({ name, contact }); } } } setCsvData(extractedData); setData((prevData) => ({ ...prevData, recipients: extractedData, spreadSheet: file.name, })); }; reader.readAsText(file); } }; const deleteRecipient = (index) => { const updatedRecipients = [...data.recipients]; updatedRecipients.splice(index, 1); setData((prevData) => ({ ...prevData, recipients: updatedRecipients, })); }; const recipientNameChange = (e, index) => { const updatedRecipients = [...data.recipients]; updatedRecipients[index] = { ...updatedRecipients[index], name: e.target.value, }; setData((prevData) => ({ ...prevData, recipients: updatedRecipients, })); }; const recipientContactChange = (e, index) => { const updatedRecipients = [...data.recipients]; updatedRecipients[index] = { ...updatedRecipients[index], contact: e.target.value, }; setData((prevData) => ({ ...prevData, recipients: updatedRecipients, })); }; const handleSubmit = (e) => { e.preventDefault(); const hasEmptyRecipients = data.recipients.some((recipient) => { return !recipient.name || !recipient.contact; }); if (hasEmptyRecipients) { toast.error("Please fill Conatct details"); return; } const formattedRecipients = data.recipients.map((recipient) => ({ name: recipient.name, contact: recipient.contact, })); const campaignData = { campaignType: data.campaignType, campaignName: data.campaignName, language: data.language, recipients: formattedRecipients, }; axios .post(`/api/campaign/create`, campaignData, { headers: { Authorization: `Bearer ${token}`, "Access-Control-Allow-Origin": "*", }, }) .then((res) => { // console.log(res); handleView(4); toast.success("Campaign added successfully!"); setLoading(false); }) .catch((err) => { setLoading(false); const message = err.response?.data?.message || "Something went wrong!"; // console.log(message); toast.error(message); }); // if ( // data?.recipients.every( // (recipient) => recipient.name !== "" && recipient.contact !== "" // ) // ) { // handleView(4); // } else { // toast.error("Fill all contact details"); // } }; return (