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 PastDueTaskAction({jobDetails}) { const apiCall = new usersService() const navigate = useNavigate() const [checked, setChecked] = useState(false) const [extendedTime, setExtendedTime] = useState('') // VALUE OF NEW EXTENDED TIME const [action, setAction] = useState('') // VALUE OF NEW EXTENDED TIME const [reqStatus, setReqStatus] = useState({loading:false, status: false, message: ''}) let [popUp, setPopUp] = useState(false) const popUpHandler = () => { if(popUp){ setChecked(false) } setPopUp(prev => !prev) } // FUNCTION TO HANDLE WHEN OWNER CANCELS JOB const cancelTask = () => { setAction('cancel') setReqStatus({loading:true, status: false, message: ''}) let reqData = { // API PAYLOADS contract: jobDetails.contract, contract_uid: jobDetails.contract_uid, job_action: 'CANCEL_CONTRACT', } if(!checked){ // CHECKS IF CHECKBOX IS SELECTED setReqStatus({loading:false, status: false, message: 'Please check the box above'}) return setTimeout(()=>{ setReqStatus({loading:false, status: false, message: ''}) }, 3000) } // API CALL TO ACCEPT COMPLETION BY OWNER setReqStatus({loading:false, status: false, message: 'No api added yet'}) setTimeout(()=>{ setReqStatus({loading:false, status: false, message: ''}) },1000) // apiCall.ownerJobAction(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: 'job cancelled 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) // }) } // FUNCTION TO HANDLE WHEN USER/OWNER CLICKS ON EXTEND TIMELINE FOR A JOB const extendTime = () => { setAction('extend') setReqStatus({loading:true, status: false, message: ''}) // Sets loading spinner active let reqData = { contract: jobDetails.contract, contract_uid: jobDetails.contract_uid, job_action: 'EXTEND_TIMELINE', extension: 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) } // API CALL EXTEND TIMELINE BY OWNER setReqStatus({loading:false, status: false, message: 'No api added yet'}) setTimeout(()=>{ setReqStatus({loading:false, status: false, message: ''}) },1000) // apiCall.ownerJobAction(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 (
|
You have missed the allocated time
|
|
|
I am ready to cancel this task
Extend the timeline by: