import React, { useMemo, useState } from "react"; import { toast } from "react-toastify"; import usersService from "../../services/UsersService"; import ModalCom from "../Helpers/ModalCom"; import { PriceFormatter } from "../Helpers/PriceFormatter"; import LoadingSpinner from "../Spinners/LoadingSpinner"; import Detail from "./popoutcomponent/Detail"; import { useNavigate } from "react-router-dom"; import { useDispatch } from "react-redux"; import { tableReload } from "../../store/TableReloads"; const showSuccessToast = (message) => { toast.success(message, { autoClose: 3000, hideProgressBar: true, }); }; function PendingJobsPopout({ details, onClose, situation }) { const dispatch = useDispatch() const navigate = useNavigate() const [pendingJobLoader, setPendingJobLoader] = useState({ extend: false, offer: false, }); let [requestMessage, setRequestMessage] = useState({status: false, message: ''}) const apiCall = new usersService(); const handlePendingJobsBtn = ({ target: { name } }) => { let { job_uid, offer_code } = details; let reqData; let pendingData = { job_uid, offer_code }; if(name=='extend'){ // RUNS THIS TO EXTEND JOB EXPIRY BY ONE WEEK reqData = { ...pendingData }; setPendingJobLoader({ extend: true }); apiCall.pendingJobExtend(reqData).then(res => { setRequestMessage({status: true, message: res.data.status}) setTimeout(() => { setPendingJobLoader({ extend: false, offer: false }); setRequestMessage({status: false, message: ''}) onClose(); dispatch(tableReload({ type: "PENDINGTABLE" })); }, 4000); }).catch(error => { setRequestMessage({status: false, message:'Try Again'}) setTimeout(() => { setPendingJobLoader({ extend: false, offer: false }); setRequestMessage({status: false, message: ''}) }, 3000); }) }else if(name=='offer'){ // RUNS THIS IF JOB IS SENT TO USER reqData = { ...pendingData }; setPendingJobLoader({ offer: true }); apiCall.pendingJobSendTome(reqData).then(res => { setRequestMessage({status: true, message: res.data.status}) setTimeout(() => { setPendingJobLoader({ extend: false, offer: false }); setRequestMessage({status: false, message: ''}) }, 4000); }).catch(error => { setRequestMessage('Try Again') setTimeout(() => { setPendingJobLoader({ extend: false, offer: false }); setRequestMessage({status: false, message: ''}) }, 3000); }) } else return // try { // if (name === "extend") { // setPendingJobLoader({ extend: true }); // reqData = { ...pendingData }; // // let { data } = // await apiCall.pendingJobExtend(reqData); // showSuccessToast("Job has been extended by a week!"); // dispatch(tableReload({ type: "PENDINGTABLE" })); // } else if (name === "offer") { // setPendingJobLoader({ offer: true }); // reqData = { ...pendingData }; // // let { data } = // await apiCall.pendingJobSendTome(reqData); // showSuccessToast("Offer sent, check your email"); // } else return; // setTimeout(() => { // setPendingJobLoader({ extend: false, offer: false }); // onClose(); // }, 2700); // } catch (error) { // setPendingJobLoader({ extend: false, offer: false }); // throw new Error(error); // } } return (

Manage Pending Item

{details.title}

!

{/* This Job have been sent to public view */} This Job have been sent to {details.job_to}

This Job will expire

{/* INPUT SECTION */}
{/*
*/}
{/* ACTION SECTION */}

Actions

Job sent to {details.job_to}

{pendingJobLoader.extend && requestMessage.message &&

{requestMessage.message}

}
{pendingJobLoader.offer && requestMessage.message &&

{requestMessage.message}

}
{/* close button */}
{/* end of close button */}
); } export default PendingJobsPopout;