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:'JOBTABLE'})) 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