import React, { useState } from "react"; import axios from "axios"; import swal from "sweetalert"; import { isAutheticated } from "src/auth"; import { useNavigate } from "react-router-dom"; import { toast } from "react-hot-toast"; import { Button } from "@mui/material"; const AddMultiplesc = () => { const [file, setFile] = useState(null); const [loading, setLoading] = useState(false); const [errors, setErrors] = useState([]); const [newlyCreated, setNewlyCreated] = useState([]); const [updatedsalesCoordinators, setupdatedsalesCoordinators] = useState([]); const navigate = useNavigate(); const token = isAutheticated(); const handleFileChange = (e) => { const selectedFile = e.target.files[0]; if ( selectedFile && selectedFile.type === "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" ) { setFile(selectedFile); } else { swal("Error", "Please upload a valid Excel file", "error"); setFile(null); } }; const handleSubmit = async (e) => { e.preventDefault(); if (!file) { toast.error("Please select a file to upload"); return; } // console.log(file); // console.log(token); setLoading(true); setErrors([]); setNewlyCreated([]); setupdatedsalesCoordinators([]); try { const formData = new FormData(); formData.append("file", file); const { data } = await axios.post( "https://cheminova-api1.onrender.com/api/salescoordinator/upload", formData, { headers: { "Content-Type": "multipart/form-data", Authorization: `Bearer ${token}`, }, } ); // console.log(data); if (data.errors && data.errors.length > 0) { setErrors(data.errors); } if (data.newlyCreated && data.newlyCreated.length > 0) { setNewlyCreated(data.newlyCreated); // console.log(data.newlyCreated); } if ( data.updatedsalesCoordinators && data.updatedsalesCoordinators.length > 0 ) { setupdatedsalesCoordinators(data.updatedsalesCoordinators); // console.log(data.updatedsalesCoordinators); } // Redirect or display success message if (data.errors && data.errors.length > 0) { setErrors(data.errors); swal({ title: "SpreadSheet Upload Successful", text: "A few Sales Coordinator have errors. Please fix them and upload again.", icon: "warning", button: "OK", }); } else if ( data.newlyCreated.length > 0 || data.updatedsalesCoordinators.length > 0 ) { swal({ title: "SpreadSheet Upload Successful", text: "Sales Coordinators added successfully.", icon: "success", buttons: "OK", }); } else { toast.success("File processed successfully with no new entries."); navigate("/salescoordinators"); } setFile(null); // Clear the file input document.querySelector('input[type="file"]').value = ""; } catch (error) { console.error("Upload error:", error); swal( "Error", `Failed to upload Sales Coordinators: ${error.response?.data?.message || "An unexpected error occurred" }`, "error" ); } finally { setLoading(false); } }; return (
Add Multiple Sales Coordinators

Upload only .xlsx files*

{errors.length > 0 && (
Finding errors while adding the Sales Coordinators.
{errors.map((error, index) => ( ))}
Employee Code Sales Coordinator Name Email Phone Message
{error.uniqueId || "N/A"} {error.name || "N/A"} {error.email || "N/A"} {error.phone || "N/A"} {error.message}
)} {updatedsalesCoordinators.length > 0 && (
Updated Sales Coordinators
{updatedsalesCoordinators.map((SC, index) => ( ))}
Employee Code Sales Coordinator Name Email Phone Message
{SC.uniqueId || "N/A"} {SC.name || "N/A"} {SC.email || "N/A"} {SC.mobileNumber || "N/A"} {SC.updatedFields}
)} {newlyCreated.length > 0 && (
Newly Created Sales Coordinators:
{newlyCreated.map((SC, index) => ( ))}
Employee Code Sales Coordinator Name Email Phone
{SC?.salesCoordinator?.uniqueId || "N/A"} {SC?.salesCoordinator?.name || "N/A"} {SC?.salesCoordinator?.email || "N/A"} {SC?.salesCoordinator?.mobileNumber || "N/A"}
)}
); }; export default AddMultiplesc;