Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 713c333e96 |
@@ -34,6 +34,8 @@ export default function ManageInterestOffer(props) {
|
|||||||
|
|
||||||
const [messageList, setMessageList] = useState({loading: true, data: []}) // TO BE REMOVED AND REPLACE WITH REAL MESSAGE FROM API CALL
|
const [messageList, setMessageList] = useState({loading: true, data: []}) // TO BE REMOVED AND REPLACE WITH REAL MESSAGE FROM API CALL
|
||||||
|
|
||||||
|
const [interestStats, setInterestStats] = useState({loading: true, data: []}) // STATE TO HOLD INTEREST STATS
|
||||||
|
|
||||||
const [selectTab, setValue] = useState("today");
|
const [selectTab, setValue] = useState("today");
|
||||||
const filterHandler = (value) => {
|
const filterHandler = (value) => {
|
||||||
setValue(value);
|
setValue(value);
|
||||||
@@ -128,6 +130,20 @@ export default function ManageInterestOffer(props) {
|
|||||||
console.log('Failed', err)
|
console.log('Failed', err)
|
||||||
})
|
})
|
||||||
},[messageListReload])
|
},[messageListReload])
|
||||||
|
|
||||||
|
useEffect(()=>{ //API to get Interest stats
|
||||||
|
let reqData = { // API PAYLOADS
|
||||||
|
interest_uid: props?.offerDetails?.interest_uid,
|
||||||
|
client_uid: props?.offerDetails?.client_uid
|
||||||
|
}
|
||||||
|
setInterestStats(prev => ({...prev, loading: true}))
|
||||||
|
apiCall.interestStatistics(reqData).then(res=>{
|
||||||
|
setInterestStats({loading: false, data:res?.data})
|
||||||
|
}).catch(err => {
|
||||||
|
setInterestStats(prev => ({...prev, loading: false}))
|
||||||
|
console.log('Failed', err)
|
||||||
|
})
|
||||||
|
},[])
|
||||||
return (
|
return (
|
||||||
<Layout>
|
<Layout>
|
||||||
<CommonHead
|
<CommonHead
|
||||||
@@ -225,30 +241,44 @@ export default function ManageInterestOffer(props) {
|
|||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div className="my-3 flex items-center gap-1">
|
<>
|
||||||
<span className="w-[200px] text-lg font-bold text-dark-gray dark:text-white tracking-wide">Jobs completed</span>
|
{interestStats.loading ?
|
||||||
<span className="min-w-[100px] text-sm font-bold text-dark-gray dark:text-white tracking-wide">{props.offerDetails?.client_jobs_completed ? props.offerDetails?.client_jobs_completed :0}</span>
|
<LoadingSpinner color='sky-blue' size='10' height='min-h-[40px]' />
|
||||||
</div>
|
:
|
||||||
<div className="my-0 md:my-3 block md:flex items-center gap-10">
|
<>
|
||||||
<div className="my-3 md:my-0 flex items-center gap-1">
|
<div className="my-0 md:my-3 block md:flex items-center gap-10">
|
||||||
<span className="w-[200px] text-lg font-bold text-dark-gray dark:text-white tracking-wide">Jobs active</span>
|
<div className='my-3 md:my-0 flex items-center gap-1'>
|
||||||
<span className="min-w-[100px] text-sm font-bold text-dark-gray dark:text-white tracking-wide">{props.offerDetails?.client_jobs_active ? props.offerDetails?.client_jobs_active:0}</span>
|
<span className="w-[200px] text-lg font-bold text-dark-gray dark:text-white tracking-wide">Jobs completed</span>
|
||||||
</div>
|
<span className="min-w-[100px] text-sm font-bold text-dark-gray dark:text-white tracking-wide">{interestStats.data?.job_completed && interestStats.data?.job_completed}</span>
|
||||||
<div className="my-3 md:my-0 flex items-center gap-1">
|
</div>
|
||||||
<span className="w-[200px] text-lg font-bold text-dark-gray dark:text-white tracking-wide">Jobs uncompleted</span>
|
<div className="my-3 md:my-0 flex items-center gap-1">
|
||||||
<span className="min-w-[100px] text-sm font-bold text-dark-gray dark:text-white tracking-wide">{props.offerDetails?.client_jobs_missed ? props.offerDetails?.client_jobs_missed:0}</span>
|
<span className="w-[200px] text-lg font-bold text-dark-gray dark:text-white tracking-wide">Last Job completed</span>
|
||||||
</div>
|
<span className="min-w-[100px] text-sm font-bold text-dark-gray dark:text-white tracking-wide">{interestStats.data?.job_last_date && interestStats.data?.job_last_date}</span>
|
||||||
</div>
|
</div>
|
||||||
<div className="block md:flex items-center gap-10">
|
</div>
|
||||||
<div className="my-3 md:my-0 flex items-center gap-1">
|
<div className="my-0 md:my-3 block md:flex items-center gap-10">
|
||||||
<span className="w-[200px] text-lg font-bold text-dark-gray dark:text-white tracking-wide">% completion</span>
|
<div className="my-3 md:my-0 flex items-center gap-1">
|
||||||
<span className="min-w-[100px] text-sm font-bold text-dark-gray dark:text-white tracking-wide">{props.offerDetails?.client_percent_completion ? props.offerDetails?.client_percent_completion:0}</span>
|
<span className="w-[200px] text-lg font-bold text-dark-gray dark:text-white tracking-wide">Jobs active</span>
|
||||||
</div>
|
<span className="min-w-[100px] text-sm font-bold text-dark-gray dark:text-white tracking-wide">{interestStats.data?.job_active && interestStats.data?.job_active}</span>
|
||||||
<div className="flex items-center gap-1">
|
</div>
|
||||||
<span className="w-[200px] text-lg font-bold text-dark-gray dark:text-white tracking-wide">Pending Offers</span>
|
<div className="my-3 md:my-0 flex items-center gap-1">
|
||||||
<span className="min-w-[100px] text-sm font-bold text-dark-gray dark:text-white tracking-wide">{props.offerDetails?.client_offers_pending ? props.offerDetails?.client_offers_pending:0}</span>
|
<span className="w-[200px] text-lg font-bold text-dark-gray dark:text-white tracking-wide">Jobs uncompleted</span>
|
||||||
</div>
|
<span className="min-w-[100px] text-sm font-bold text-dark-gray dark:text-white tracking-wide">{interestStats.data?.job_uncompleted && interestStats.data?.job_uncompleted}</span>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
<div className="block md:flex items-center gap-10">
|
||||||
|
<div className="my-3 md:my-0 flex items-center gap-1">
|
||||||
|
<span className="w-[200px] text-lg font-bold text-dark-gray dark:text-white tracking-wide">% completion</span>
|
||||||
|
<span className="min-w-[100px] text-sm font-bold text-dark-gray dark:text-white tracking-wide">{interestStats.data?.job_percent_complete && interestStats.data?.job_percent_complete}</span>
|
||||||
|
</div>
|
||||||
|
<div className="flex items-center gap-1">
|
||||||
|
<span className="w-[200px] text-lg font-bold text-dark-gray dark:text-white tracking-wide">Pending Offers</span>
|
||||||
|
<span className="min-w-[100px] text-sm font-bold text-dark-gray dark:text-white tracking-wide">{interestStats.data?.job_pending && interestStats.data?.job_pending}</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</>
|
||||||
|
}
|
||||||
|
</>
|
||||||
</div>
|
</div>
|
||||||
: tab == 'message' ?
|
: tab == 'message' ?
|
||||||
<div className="message-details w-full border-t">
|
<div className="message-details w-full border-t">
|
||||||
|
|||||||
@@ -188,6 +188,8 @@ export const apiConst = {
|
|||||||
WRENCHBOARD_JOB_JOBGROUPADD: 13046,
|
WRENCHBOARD_JOB_JOBGROUPADD: 13046,
|
||||||
WRENCHBOARD_JOB_REPORT: 13047,
|
WRENCHBOARD_JOB_REPORT: 13047,
|
||||||
|
|
||||||
|
WRENCHBOARD_INTEREST_STATS: 13048,
|
||||||
|
|
||||||
WRENCHBOARD_GROUP_START: 12000,
|
WRENCHBOARD_GROUP_START: 12000,
|
||||||
WRENCHBOARD_GROUP_CREATEGROUP: 12010,
|
WRENCHBOARD_GROUP_CREATEGROUP: 12010,
|
||||||
WRENCHBOARD_GROUP_INVITEGROUP: 12015,
|
WRENCHBOARD_GROUP_INVITEGROUP: 12015,
|
||||||
|
|||||||
@@ -1112,6 +1112,18 @@ class usersService {
|
|||||||
return this.postAuxEnd("/offerinterestlistmsg", postData);
|
return this.postAuxEnd("/offerinterestlistmsg", postData);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// END POINT TO GET INTEREST STATS
|
||||||
|
interestStatistics(reqData) {
|
||||||
|
var postData = {
|
||||||
|
uid: localStorage.getItem("uid"),
|
||||||
|
member_id: localStorage.getItem("member_id"),
|
||||||
|
sessionid: localStorage.getItem("session_token"),
|
||||||
|
action: apiConst.WRENCHBOARD_INTEREST_STATS,
|
||||||
|
...reqData,
|
||||||
|
};
|
||||||
|
return this.postAuxEnd("/intereststats", postData);
|
||||||
|
}
|
||||||
|
|
||||||
// TO ADD FAMILY
|
// TO ADD FAMILY
|
||||||
addFamily(reqData) {
|
addFamily(reqData) {
|
||||||
var postData = {
|
var postData = {
|
||||||
|
|||||||
Reference in New Issue
Block a user