import React, { useState } from "react"; import Detail from "./popoutcomponent/Detail"; import ModalCom from "../Helpers/ModalCom"; import { useNavigate } from "react-router-dom"; import usersService from "../../services/UsersService"; import LoadingSpinner from "../Spinners/LoadingSpinner"; import { tableReload } from "../../store/TableReloads"; import { useDispatch } from "react-redux"; function OfferJobPopout({ details, onClose, situation }) { const apiUrl = new usersService(); const navigate = useNavigate(); const dispatch = useDispatch(); const [requestStatus, setRequestStatus] = useState({ loading: false, status: false, message: "", trigger: "", }); //FUNCTION TO HANDLE AN OFFER const handleOffer = ({ target: { name } }) => { const reqData = { // offer_result: 100, offer_code: details.contract, contract: details.contract, }; //logic to determine the button pressed and set reqDate accordingly if (name == "accept") { setRequestStatus({ loading: true, status: false, message: "", trigger: "offer", }); reqData.offer_result = 100; } if (name == "reject") { setRequestStatus({ loading: true, status: false, message: "", trigger: "reject", }); reqData.offer_result = 333; } // API CALL apiUrl .offersResponse(reqData) .then((response) => { if (response.status != 200 || response.data.internal_return < 0) { setRequestStatus({ loading: false, status: false, message: `Unable to ${name} Offer, try again later`, trigger: "", }); return; } setRequestStatus({ loading: false, status: true, message: `Offer ${name}ed Successfully`, trigger: "", }); setTimeout(() => { onClose(); dispatch(tableReload({ type: "MYTASKTABLE" })); navigate("/mytask", { replace: true }); setRequestStatus({ loading: false, status: false, message: "", trigger: "", }); }, 2000); }) .catch((error) => { setRequestStatus({ loading: false, status: false, message: `Opps! An Error Occurred`, trigger: "", }); }) .finally(() => { setTimeout(() => { setRequestStatus({ loading: false, status: false, message: "", trigger: "", }); }, 5000); }); }; return (

Start Task

{details.title}

{/* INPUT SECTION */}
{/* ACTION SECTION */}
{requestStatus.loading && requestStatus.trigger == "offer" ? ( ) : ( )}
{requestStatus.loading && requestStatus.trigger == "reject" ? ( ) : ( )}
{/* ERROR DISPLAY AND SUBMIT BUTTON */} {requestStatus.message != "" && (!requestStatus.status ? (
{requestStatus.message}
) : ( requestStatus.status && (
{requestStatus.message}
) ))} {/* End of error or success display */}
{/* close button */}
{/* end of close button */}
); } export default OfferJobPopout;