diff --git a/src/components/MyTasks/MyJobTable.jsx b/src/components/MyTasks/MyJobTable.jsx index 2393e31..60f42ad 100644 --- a/src/components/MyTasks/MyJobTable.jsx +++ b/src/components/MyTasks/MyJobTable.jsx @@ -68,7 +68,7 @@ export default function MyJobTable({ className }) { >
-
+
data 0 && MyActiveOffersList.result_list.map((value, index) => ( -
+
{/* title */}
diff --git a/src/components/jobPopout/OfferJobPopout.jsx b/src/components/jobPopout/OfferJobPopout.jsx index c1e010b..78f699f 100644 --- a/src/components/jobPopout/OfferJobPopout.jsx +++ b/src/components/jobPopout/OfferJobPopout.jsx @@ -1,9 +1,59 @@ -import React from 'react' +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' function OfferJobPopout({details, onClose, situation}) { + const apiUrl = new usersService() + const navigate = useNavigate() + + 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 + } + if(name == 'cancel'){ + setRequestStatus({loading: true, status: false, message: '', trigger: 'cancel'}) + reqData.offer_result = 222 + } + + // 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() + 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 (
@@ -89,24 +139,65 @@ function OfferJobPopout({details, onClose, situation}) { {/* 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 */}
- + {requestStatus.loading && requestStatus.trigger == 'cancel' ? + + : + + }
{/* end of close button */}
diff --git a/src/services/UsersService.js b/src/services/UsersService.js index 8408d2d..370da93 100644 --- a/src/services/UsersService.js +++ b/src/services/UsersService.js @@ -532,6 +532,18 @@ class usersService { return this.postAuxEnd("/verifysignuplink", reqData); } + // END POINT FOR OFFER RESPONSE (i.e TO ACCEPT, REJECT, CANCEL, ETC OFFER) + offersResponse(reqData) { + var postData = { + uid: localStorage.getItem("uid"), + member_id: localStorage.getItem("member_id"), + sessionid: localStorage.getItem("session_token"), + action: 15012, + ...reqData, + }; + return this.postAuxEnd("/offersresponse", postData); + } + /* - 20:27:30.118 FLOG_MAX [757411]: REQ_STRING(username) - 20:27:30.118 FLOG_MAX [757411]: REQ_STRING(password)