import React, { useState, useEffect, useRef, useCallback } from "react"; import axios from "axios"; import { Dialog, DialogContent, DialogTitle, Button, TextField, DialogActions, } from "@mui/material"; import { isAutheticated } from "../../auth"; import swal from "sweetalert"; import debounce from "lodash.debounce"; const TMmodal = ({ openTMModal, handleCloseTMModal, refreshData, rdid }) => { const token = isAutheticated(); const [modalTerritoryManagers, setmodalTerritoryManagers] = useState( [] ); const [modalTotalData, setModalTotalData] = useState(0); const [modalcurrentPage, setmodalCurrentPage] = useState(1); const [modalitemPerPage, setmodalItemPerPage] = useState(10); const [loading, setLoading] = useState(false); const tmnameRef = useRef(); const tmmobileRef = useRef(); const getTerritorymanagersData = async () => { setLoading(true); try { const res = await axios.get(`/api/territorymanager/getAll`, { headers: { Authorization: `Bearer ${token}`, }, params: { page: modalcurrentPage, show: modalitemPerPage, name: tmnameRef.current?.value, mobileNumber: tmmobileRef.current?.value, }, }); setmodalTerritoryManagers(res.data?.territoryManager); setModalTotalData(res.data?.total_data); } catch (err) { const msg = err?.response?.data?.message || "Something went wrong!"; swal({ title: "Error", text: msg, icon: "error", button: "Retry", dangerMode: true, }); } finally { setLoading(false); } }; const handleTMMap = (id) => { const data = { mappedTM: id, }; axios .put(`/api/mapped/${rdid}`, data, { headers: { Authorization: `Bearer ${token}`, }, }) .then((res) => { swal({ title: "Success", text: "Principal Distributor mapped successfully!", icon: "success", button: "Ok", }); refreshData(); // Call the refresh function handleCloseTMModal(); }) .catch((err) => { const msg = err?.response?.data?.message || "Something went wrong!"; swal({ title: "Error", text: msg, icon: "error", button: "Retry", dangerMode: true, }); }); }; useEffect(() => { getTerritorymanagersData(); }, [modalcurrentPage]); const handleInputChange = useCallback( debounce(() => { getTerritorymanagersData(); }, 1000), [] ); const handleNextPage = () => { setmodalCurrentPage((prev) => prev + 1); }; const handlePreviousPage = () => { setmodalCurrentPage((prev) => prev - 1); }; return ( Search and Add Territory Manager
{modalTerritoryManagers.length > 0 ? ( modalTerritoryManagers.map((TM) => ( )) ) : ( )}
Id Name Mobile Email Action
{TM.uniqueId} {TM.name} {TM.mobileNumber} {TM.email}
No Territory Manager found!
Showing {modalTerritoryManagers?.length} of {modalTotalData}{" "} entries
); }; export default TMmodal;