From 8a9ec359949253efb94b6d3412f463639abd590c Mon Sep 17 00:00:00 2001 From: victorAnumudu Date: Sat, 1 Jul 2023 00:06:22 +0100 Subject: [PATCH] Assign family task API consumed --- .../FamilyPopout/AssignTaskPopout.jsx | 170 ++++++++++++++---- src/services/UsersService.js | 13 ++ 2 files changed, 144 insertions(+), 39 deletions(-) diff --git a/src/components/FamilyAcc/FamilyPopout/AssignTaskPopout.jsx b/src/components/FamilyAcc/FamilyPopout/AssignTaskPopout.jsx index 6a9162b..54e7dee 100644 --- a/src/components/FamilyAcc/FamilyPopout/AssignTaskPopout.jsx +++ b/src/components/FamilyAcc/FamilyPopout/AssignTaskPopout.jsx @@ -7,15 +7,65 @@ import { PriceFormatter } from '../../Helpers/PriceFormatter' function AssignTaskPopout({action, situation, familyDetails}) { const apiCall = new usersService() + + let [requestStatus, setRequestStatus] = useState({loading: false, status: false, message: ''}) // HOLDS RESPONSE FOR SENDING API REQUEST let [familyTask, setFamilyTask] = useState({loading: true, data: []}) - let [activeTask, setActiveTask] = useState({id: 0, data: {}}) -console.log('TESTING',activeTask.data) - const handleActiveTask = (id=0, data={}) => { + let [taskType, setTaskType] = useState('select') // SWITCHES BTW SELECT TASK AND NEW TASK + + let [activeTask, setActiveTask] = useState({id: 0, data: {}}) // HOLDS SELECTED TASK + + const switchTaskType = ({target:{value}}) => { // FUNCTION TO CHANGE SELECTED ACTIVE TASK + setTaskType(value) + } + + const handleActiveTask = (id=0, data={}) => { // FUNCTION TO CHANGE SELECTED ACTIVE TASK setActiveTask({id, data}) } + const assignFamilyTask = () => { + setRequestStatus({loading: true, status: false, message: ''}) + let reqData = {} + if(taskType == 'select'){ // RUNS HERE IF TASK TYPE IS SELECT + if(!Object.keys(activeTask.data).length){ + setRequestStatus({loading: false, status: false, message: 'No Task is seleted'}) + return setTimeout(()=>{ + setRequestStatus({loading: false, status: false, message: ''}) + }, 3000) + } + reqData = { // API PAYLOADS + job_id: activeTask.data?.job_id, + job_uid: activeTask.data?.job_uid, + family_uid: familyDetails.uid, + job_description: activeTask.data?.description, + assign_mode: 110011, + } + + apiCall.assignFamilyTask(reqData).then(res => { + if(res.status != 200 || res.data.internal_return < 0){ + setRequestStatus({loading: false, status: false, message: 'failed to assign task'}) + return setTimeout(()=>{ + setRequestStatus({loading: false, status: false, message: ''}) + }, 5000) + } + setRequestStatus({loading: false, status: true, message: 'action successful'}) + setTimeout(()=>{ + setRequestStatus({loading: false, status: false, message: ''}) + }, 5000) + }).catch(err => { + setRequestStatus({loading: false, status: false, message: 'An Error occured, try again'}) + setTimeout(()=>{ + setRequestStatus({loading: false, status: false, message: ''}) + }, 5000) + }) + } + + if(taskType == 'new'){ // RUNS HERE IF TASK TYPE IS NEW TASK + console.log('TESTING') + } + } + useEffect(()=>{ const reqData = { limit: 30, @@ -25,7 +75,9 @@ console.log('TESTING',activeTask.data) } apiCall.getMyJobList(reqData).then(res => { setFamilyTask({loading: false, data: res?.data?.result_list}) - setActiveTask(prev => ({...prev, data:res?.data?.result_list[0]})) + if(res?.data?.result_list?.length){ + setActiveTask(prev => ({...prev, data:res?.data?.result_list[0]})) + } }).catch(err => { setFamilyTask({loading: false, data: []}) console.log('Error', err) @@ -37,7 +89,7 @@ console.log('TESTING',activeTask.data) action={action} situation={situation} > -
+

Assign task to {familyDetails?.firstname} @@ -69,55 +121,64 @@ console.log('TESTING',activeTask.data)

{familyTask.loading ? -
+
: - familyTask.data.length ? <>
- Select Task + + Select Task
- New Task + + New Task
- {familyTask?.data?.map((item, index)=>( -
handleActiveTask(item.job_uid, item)}> - handleActiveTask(item.job_uid, item)} - className="w-[15px] h-[15px] cursor-pointer" - /> -

{item?.title}

-
- )) + { + taskType == 'select' ? + familyTask?.data?.length ? + familyTask?.data?.map((item, index)=>( +
handleActiveTask(item.job_uid, item)}> + handleActiveTask(item.job_uid, item)} + className="w-[15px] h-[15px] cursor-pointer" + /> +

{item?.title}

+
+ )) + : +

No Task found!

+ : +

SPACE FOR NEW TASK

}
+ {familyTask?.data?.length > 0 ?

{activeTask?.data?.title}

-
+
+
+
+ +

{PriceFormatter(activeTask?.data?.price*0.01, activeTask?.data?.currency, activeTask?.data?.curreny_code)}

+
-
- -
- -
- +
+ +

{`${activeTask?.data?.timeline_days} day(s)`}

+
@@ -138,27 +199,58 @@ console.log('TESTING',activeTask.data) defaultValue={activeTask?.data?.job_detail} // onChange={handleInputChange} /> - {/*

{errMsg.deliveryDetail}

*/} + {/*

{}

*/}
-
+
+ : + <> + }
{/* BTN */}
- + {/* error or success display */} + {requestStatus.message != "" && + (!requestStatus.status ? ( +
+ {requestStatus.message} +
+ ) : ( + requestStatus.status && ( +
+ {requestStatus.message} +
+ ) + ))} + {/* End of error or success display */} + +
+ {requestStatus.loading ? + + : + } +
- : -

No Task found!

}
diff --git a/src/services/UsersService.js b/src/services/UsersService.js index e926b19..6a1d5e9 100644 --- a/src/services/UsersService.js +++ b/src/services/UsersService.js @@ -787,6 +787,19 @@ class usersService { }; return this.postAuxEnd("/offerinterestlistmsg", postData); } + + // FUNCTION TO ASSIGN TASK TO FAMILY MEMBER + assignFamilyTask(reqData) { + var postData = { + uid: localStorage.getItem("uid"), + member_id: localStorage.getItem("member_id"), + sessionid: localStorage.getItem("session_token"), + action: 13025, + ...reqData + }; + return this.postAuxEnd("/assigntask", postData); + } + /* - 20:27:30.118 FLOG_MAX [757411]: REQ_STRING(username) - 20:27:30.118 FLOG_MAX [757411]: REQ_STRING(password) -- 2.34.1