diff --git a/src/components/MyActiveJobs/JobActions/PastDueJobAction.jsx b/src/components/MyActiveJobs/JobActions/PastDueJobAction.jsx
index c26db4a..58e81db 100644
--- a/src/components/MyActiveJobs/JobActions/PastDueJobAction.jsx
+++ b/src/components/MyActiveJobs/JobActions/PastDueJobAction.jsx
@@ -1,9 +1,14 @@
import React,{useState} from 'react'
import ModalCom from '../../Helpers/ModalCom'
import LoadingSpinner from '../../Spinners/LoadingSpinner'
+import { useNavigate } from 'react-router-dom'
+import usersService from '../../../services/UsersService'
function PastDueJobAction({jobDetails}) {
+ const apiCall = new usersService()
+ const navigate = useNavigate()
+
const [checked, setChecked] = useState(false)
const [extendedTime, setExtendedTime] = useState('') // VALUE OF NEW EXTENDED TIME
@@ -21,7 +26,7 @@ function PastDueJobAction({jobDetails}) {
setPopUp(prev => !prev)
}
- // FUNCTION TO HANDLE WHEN USER CLICKS ON SEND FOR REVIEW AND ACCEPTANCE
+ // FUNCTION TO HANDLE WHEN OWNER CANCELS JOB
const cancelTask = () => {
setAction('cancel')
setReqStatus({loading:true, status: false, message: ''})
@@ -37,21 +42,41 @@ function PastDueJobAction({jobDetails}) {
}, 3000)
}
- // FUNCTION TO HANDLE WHEN USER CLICKS ON SEND FOR REVIEW AND ACCEPTANCE
+ // FUNCTION TO HANDLE WHEN USER/OWNER CLICKS ON EXTEND TIMELINE FOR A JOB
const extendTime = () => {
setAction('extend')
- setReqStatus({loading:true, status: false, message: ''})
-
- if(!extendedTime){ // CHECKS IF EXTENDED TIME IS SELECTED
- setReqStatus({loading:false, status: false, message: 'Please select extension duration'})
+ setReqStatus({loading:true, status: false, message: ''}) // Sets loading spinner active
+ let reqData = {
+ contract: jobDetails.contract,
+ contract_uid: jobDetails.contract_uid,
+ job_action: 'EXTEND_TIMELINE',
+ duration: Number(extendedTime)
+ }
+ if(!extendedTime){ // checks that timeline duration is selected
+ setReqStatus({loading:false, status: false, message: 'Please select timeline duration'})
return setTimeout(()=>{
setReqStatus({loading:false, status: false, message: ''})
}, 3000)
}
-
- setTimeout(()=>{
- setReqStatus({loading:false, status: false, message: ''})
- }, 3000)
+
+ // API CALL EXTEND TIMELINE BY OWNER
+ apiCall.extendJobTimeline(reqData).then((res)=>{
+ if(res.status != 200 || res.data.internal_return < 0){
+ setReqStatus({loading:false, status: false, message: 'unable to complete request. Try again'})
+ return
+ }
+ setReqStatus({loading:false, status: true, message: 'Timeline extended successfully'})
+ setTimeout(()=>{ // Sets popout to false and navigates user to /my-pastdue-jobs after 3 seconds
+ popUpHandler()
+ navigate('/my-pastdue-jobs', {replace: true})
+ }, 3000)
+ }).catch(err => {
+ setReqStatus({loading:false, status: false, message: 'Opps! Network error. Try again'})
+ }).finally(()=>{
+ setTimeout(()=>{
+ setReqStatus({loading:false, status: false, message: ''})
+ }, 3000)
+ })
}
return (
@@ -149,7 +174,7 @@ function PastDueJobAction({jobDetails}) {
-
+
{reqStatus.loading && action=='extend' ?
diff --git a/src/services/UsersService.js b/src/services/UsersService.js
index fb09739..0e802d0 100644
--- a/src/services/UsersService.js
+++ b/src/services/UsersService.js
@@ -665,6 +665,18 @@ class usersService {
return this.postAuxEnd("/activetaskstatus", postData);
}
+ // END POINT FOR OWNER TO EXTEND TIMELINE/DURATON OF JOB
+ extendJobTimeline(reqData) {
+ var postData = {
+ uid: localStorage.getItem("uid"),
+ member_id: localStorage.getItem("member_id"),
+ sessionid: localStorage.getItem("session_token"),
+ action: 14015,
+ ...reqData,
+ };
+ return this.postAuxEnd("/activejobstatus ", postData);
+ }
+
/*
- 20:27:30.118 FLOG_MAX [757411]: REQ_STRING(username)
- 20:27:30.118 FLOG_MAX [757411]: REQ_STRING(password)