96 lines
3.1 KiB
React
96 lines
3.1 KiB
React
import React, { useState, useEffect } from "react";
|
|
import datas from "../../data/product_data.json";
|
|
import Layout from "../Partials/Layout";
|
|
import usersService from "../../services/UsersService";
|
|
import { useSelector } from "react-redux";
|
|
import FamilyDash from "./FamilyDash";
|
|
import FullAccountDash from "./FullAccountDash";
|
|
|
|
export default function Home(props) {
|
|
// console.log("PROPS IN HOME->", props);
|
|
const userApi = new usersService();
|
|
const { commonHeadBanner } = useSelector((state) => state.commonHeadBanner);
|
|
|
|
let [nextDueTask, setNextDueTask] = useState({});
|
|
const [MyOffersList, setMyOffersList] = useState({loading: true, data: []});
|
|
|
|
const { userDetails } = useSelector((state) => state?.userDetails);
|
|
|
|
const [MyActiveJobList, setMyActiveJobList] = useState({loading:true, data:[]}); // STATE TO HOLD ACTIVE/CURRENT TASKS
|
|
// const [MyActiveJobList, setMyActiveJobList] = useState([]); // STATE TO HOLD ACTIVE/CURRENT TASKS
|
|
|
|
const getMyActiveJobList = async () => { // FUNCTION TO POPULATE ACTIVE/CURRENT TASK LIST
|
|
try {
|
|
const res = await userApi.getMyActiveTaskList();
|
|
setMyActiveJobList({loading:false, data:res?.data?.result_list});
|
|
// setMyActiveJobList(res?.data?.result_list);
|
|
} catch (error) {
|
|
setMyActiveJobList({loading:false, data:[]});
|
|
// setMyActiveJobList([]);
|
|
console.log("Error getting tasks");
|
|
}
|
|
};
|
|
|
|
// FUNCTION TO GET DASH DATA TO DETERMINE CURRENT TASK DUE TIME
|
|
const getHomeDate = () => {
|
|
userApi
|
|
.getHomeDate()
|
|
.then((res) => {
|
|
if (res.status != 200 || res.internal_return < 0) {
|
|
return;
|
|
}
|
|
setNextDueTask(res.data);
|
|
})
|
|
.catch((error) => {
|
|
console.log(error);
|
|
});
|
|
};
|
|
|
|
const getMyOffersList = async () => {
|
|
try {
|
|
const res = await userApi.getOffersList();
|
|
setMyOffersList({loading:false, data:res.data});
|
|
} catch (error) {
|
|
setMyOffersList({loading:false, data:[]});
|
|
console.log("Error getting offers", error);
|
|
}
|
|
};
|
|
|
|
useEffect(() => {
|
|
const fetchData = async () => {
|
|
await Promise.all([getHomeDate(), getMyOffersList(), getMyActiveJobList()]);
|
|
};
|
|
if(userDetails?.account_type == 'FULL'){
|
|
fetchData();
|
|
}
|
|
}, []);
|
|
|
|
return (
|
|
<Layout>
|
|
<div className="home-page-wrapper">
|
|
{userDetails && userDetails?.account_type == "FAMILY" ? (
|
|
<FamilyDash
|
|
account={userDetails}
|
|
commonHeadData={props.bannerList}
|
|
// familyOffers={MyOffersList?.data}
|
|
serverImg = {userDetails?.session_image_server}
|
|
// MyActiveJobList={MyActiveJobList?.data}
|
|
/>
|
|
) : userDetails && userDetails?.account_type == "FULL" ? (
|
|
<FullAccountDash
|
|
nextDueTask={nextDueTask}
|
|
bannerList={props.bannerList}
|
|
dashTypes={props.dashTypes}
|
|
offersList={MyOffersList}
|
|
MyActiveJobList={MyActiveJobList}
|
|
/>
|
|
) : (
|
|
<div>
|
|
You are not logged in or your account type is not supported.
|
|
</div>
|
|
)}
|
|
</div>
|
|
</Layout>
|
|
);
|
|
}
|