import React, { useState } from "react"; import ModalCom from "../Helpers/ModalCom"; import { useNavigate } from "react-router-dom"; import usersService from "../../services/UsersService"; import LoadingSpinner from "../Spinners/LoadingSpinner"; import { useDispatch } from "react-redux"; import { tableReload } from "../../store/TableReloads"; function DeleteJobPopout({ details, onClose, situation }) { let dispatch = useDispatch(); const navigate = useNavigate(); const ApiCall = new usersService(); let [requestStatus, setRequestStatus] = useState({ laoding: false, status: false, message: "", }); // STATE FOR KNOWING WHEN A REQUEST IS MADE TO THE SERVER // FUNCTION CALLED ONCE USER CONFIRM DELETE JOB const deleteJob = (details) => { setRequestStatus({ laoding: true, status: false, message: "" }); let reqData = { job_id: details.job_id, job_uid: details.job_uid, }; // DATA NEEDED BY THE API // API CALL TO DELETE A JOB ApiCall.deleteJob(reqData) .then((res) => { if (res.data.internal_return < 0) { setRequestStatus({ laoding: false, status: false, message: "Could not perform the request, try again!", }); return; } setRequestStatus({ laoding: false, status: true, message: "Job deleted successfully", }); setTimeout(() => { dispatch(tableReload({ type: "JOBTABLE" })); navigate("/myjobs", { replace: true }); onClose(); }, 1000); }) .catch((error) => { setRequestStatus({ laoding: false, status: false, message: "Opps! something went wrong, try again", }); }) .finally(() => { setTimeout(() => { setRequestStatus({ laoding: false, status: false, message: "" }); }, 5000); }); }; return (

Delete Job

{details.title}

Price: {details.thePrice}

Duration: {details.timeline_days} day(s)

{/* ERROR DISPLAY AND SUBMIT BUTTON */} {requestStatus.message != "" && (!requestStatus.status ? (
{requestStatus.message}
) : ( requestStatus.status && (
{requestStatus.message}
) ))} {/* End of error or success display */}
{requestStatus.laoding ? ( ) : ( )}
); } export default DeleteJobPopout;