Compare commits

...

6 Commits

7 changed files with 39 additions and 79 deletions
+25 -9
View File
@@ -19,7 +19,7 @@ export default function FamilyTable({
familyList, familyList,
loader, loader,
popUpHandler, popUpHandler,
imageServer imageServer,
}) { }) {
const navigate = useNavigate(); const navigate = useNavigate();
const [currentPage, setCurrentPage] = useState(0); const [currentPage, setCurrentPage] = useState(0);
@@ -55,14 +55,19 @@ export default function FamilyTable({
banner, banner,
enable_traking, enable_traking,
profile_picture, profile_picture,
imageServer imageServer,
username,
}) => { }) => {
// Check for valid dates // Check for valid dates
const addedDate = added ? added.split(" ")[0] : "N/A"; const addedDate = added ? added.split(" ")[0] : "N/A";
const loginDate = last_login ? formatDateString(last_login) : "N/A"; const loginDate = last_login ? formatDateString(last_login) : "N/A";
const key = `family-${family_uid}`; // Assign a unique key const key = `family-${family_uid}`; // Assign a unique key
const image = localStorage.getItem('session_token') ? `${imageServer}${localStorage.getItem('session_token')}/family/${family_uid}` : '' const image = localStorage.getItem("session_token")
? `${imageServer}${localStorage.getItem(
"session_token"
)}/family/${family_uid}`
: "";
const trackingStatus = const trackingStatus =
enable_traking === "0" enable_traking === "0"
? "Stopped" ? "Stopped"
@@ -80,14 +85,19 @@ export default function FamilyTable({
<div className="w-[60px] h-[60px] rounded-full overflow-hidden flex justify-center items-center"> <div className="w-[60px] h-[60px] rounded-full overflow-hidden flex justify-center items-center">
<img <img
// src={profile_picture} // src={profile_picture}
src={image || profile_picture || localImgLoad(`images/icons/${banner}`)} src={
image ||
profile_picture ||
localImgLoad(`images/icons/${banner}`)
}
alt={`Avatar of ${firstname} ${lastname}`} alt={`Avatar of ${firstname} ${lastname}`}
className="w-full h-full" className="w-full h-full"
/> />
</div> </div>
<div className="flex flex-col flex-[0.9]"> <div className="flex flex-col flex-[0.9]">
<h1 className="font-bold text-xl text-dark-gray dark:text-white whitespace-nowrap"> <h1 className="font-bold text-lg text-dark-gray dark:text-white whitespace-nowrap">
{`${firstname} ${lastname} (${age < 10 ? `0${age}` : age})`} {`${firstname} ${lastname}`}{" "}
<span className="ml-1 text-sm">{`[${username}]`}</span>
</h1> </h1>
<span className="text-sm text-thin-light-gray"> <span className="text-sm text-thin-light-gray">
Added: <span className="text-purple ml-1">{addedDate}</span> Added: <span className="text-purple ml-1">{addedDate}</span>
@@ -136,7 +146,7 @@ export default function FamilyTable({
task_count, task_count,
family_uid, family_uid,
banner, banner,
image image,
}) })
} }
type="button" type="button"
@@ -186,7 +196,13 @@ export default function FamilyTable({
</thead> </thead>
<tbody className="h-full"> <tbody className="h-full">
{currentFamilyList?.map((familyMember, index) => { {currentFamilyList?.map((familyMember, index) => {
return <FamilyRow key={index} {...familyMember} imageServer={imageServer} />; return (
<FamilyRow
key={index}
{...familyMember}
imageServer={imageServer}
/>
);
})} })}
</tbody> </tbody>
</table> </table>
+4 -25
View File
@@ -7,14 +7,14 @@ import { useDispatch, useSelector } from "react-redux";
import { tableReload } from "../../store/TableReloads"; import { tableReload } from "../../store/TableReloads";
import LoadingSpinner from "../Spinners/LoadingSpinner"; import LoadingSpinner from "../Spinners/LoadingSpinner";
export default function FamilyDash({ MyActiveJobList, serverImg }) { export default function FamilyDash({ MyActiveJobList=[], serverImg }) {
// console.log("PROPS IN FAMILY DASH->", familyOffers?.result_list); // console.log("PROPS IN FAMILY DASH->", familyOffers?.result_list);
const dispatch = useDispatch(); const dispatch = useDispatch();
const userApi = new usersService(); const userApi = new usersService();
const trending = MyActiveJobList; // const trending = MyActiveJobList;
const { familyBannersList } = useSelector((state) => state.familyBannersList); const { familyBannersList } = useSelector((state) => state.familyBannersList);
@@ -24,25 +24,6 @@ export default function FamilyDash({ MyActiveJobList, serverImg }) {
let [reloadBanner, setReloadBanner] = useState(0) let [reloadBanner, setReloadBanner] = useState(0)
// DO NOT UNCOMMENT THE CODE BELOW
// let [familyBannersList, setFamilyBannersList] = useState({loading:false, result:{}})
// const getFamilyBanners = async () => { // FUNCTION TO GET FAMILY BANNERS
// setFamilyBannersList({loading:true, result:[]});
// try {
// const res = await userApi.getFamilyBannersList();
// setFamilyBannersList({loading:false, result:res.data});
// console.log('TEST RESPONSE', res.data)
// } catch (error) {
// setFamilyBannersList({loading:false, result:[]});
// console.log("Error getting tasks");
// }
// };
// useEffect(()=>{
// getFamilyBanners()
// },[])
useEffect(()=>{ useEffect(()=>{
if(reloadBanner >= 2){ if(reloadBanner >= 2){
dispatch(tableReload({ type: "FAMILYBANNERSLIST" })); // RELOAD FAMILY BANNERS LIST EVERY 10 MINS dispatch(tableReload({ type: "FAMILYBANNERSLIST" })); // RELOAD FAMILY BANNERS LIST EVERY 10 MINS
@@ -60,8 +41,6 @@ export default function FamilyDash({ MyActiveJobList, serverImg }) {
return ( return (
<div> <div>
<div className="home-page-wrapper"> <div className="home-page-wrapper">
{/* <CommonHead commonHeadData={props.commonHeadData} /> */}
{/* Header */} {/* Header */}
<div className="text-white mb-4 p-2 w-full rounded-xl bg-sky-blue place-content-center"> <div className="text-white mb-4 p-2 w-full rounded-xl bg-sky-blue place-content-center">
<div className="w-full flex flex-wrap gap-x-4"> <div className="w-full flex flex-wrap gap-x-4">
@@ -148,13 +127,13 @@ export default function FamilyDash({ MyActiveJobList, serverImg }) {
/> />
)} */} )} */}
{trending && trending.length > 0 && ( {/* {trending && trending.length > 0 && (
<FamilyActiveLSlde <FamilyActiveLSlde
trending={trending} trending={trending}
className="mb-10" className="mb-10"
image_server={serverImg} image_server={serverImg}
/> />
)} )} */}
</div> </div>
</div> </div>
); );
+2 -24
View File
@@ -58,17 +58,13 @@ export default function Home(props) {
useEffect(() => { useEffect(() => {
const fetchData = async () => { const fetchData = async () => {
await Promise.all([getHomeDate(), getMyOffersList()]); await Promise.all([getHomeDate(), getMyOffersList(), getMyActiveJobList()]);
}; };
if(userDetails?.account_type == 'FULL'){ if(userDetails?.account_type == 'FULL'){
fetchData(); fetchData();
} }
}, []); }, []);
useEffect(() => {
getMyActiveJobList();
}, []);
return ( return (
<Layout> <Layout>
<div className="home-page-wrapper"> <div className="home-page-wrapper">
@@ -78,7 +74,7 @@ export default function Home(props) {
commonHeadData={props.bannerList} commonHeadData={props.bannerList}
// familyOffers={MyOffersList?.data} // familyOffers={MyOffersList?.data}
serverImg = {userDetails?.session_image_server} serverImg = {userDetails?.session_image_server}
MyActiveJobList={MyActiveJobList?.data} // MyActiveJobList={MyActiveJobList?.data}
/> />
) : userDetails && userDetails?.account_type == "FULL" ? ( ) : userDetails && userDetails?.account_type == "FULL" ? (
<FullAccountDash <FullAccountDash
@@ -97,21 +93,3 @@ export default function Home(props) {
</Layout> </Layout>
); );
} }
// /*
// <Layout>
// <div className="home-page-wrapper">
// <Hero className="mb-10" data={userDetails} />
// {/* <CreateNft />
// <TrendingSection trending={trending} className="mb-10" />*/}
// <HomeTaskDisplay
// jobData={jobData}
// className="mb-10"
// bannerList={props.bannerList}
// />
{
/* <SellHistoryMarketVisitorAnalytic className="mb-10"/>
<TopSellerTopBuyerSliderSection className="mb-10" />
<UpdateTable className="mb-10"/>*/
}
// </div>
// </Layout>
+4 -4
View File
@@ -286,7 +286,7 @@ function ActiveJobs(props) {
<path d="M19 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H19v-2z" /> <path d="M19 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H19v-2z" />
</svg> </svg>
</button> </button>
<h1 className="text-xl lg:text-2xl font-bold text-dark-gray dark:text-white tracking-wide"> <h1 className="text-[22px] font-bold text-dark-gray dark:text-white tracking-wide">
{props.details?.title && props.details.title} {props.details?.title && props.details.title}
</h1> </h1>
</div> </div>
@@ -412,7 +412,7 @@ function ActiveJobs(props) {
</div> </div>
{tab == "message" ? ( {tab == "message" ? (
<textarea <textarea
className="p-4 w-full h-[300px] text-base text-slate-600 dark:text-white bg-white dark:bg-black border border-slate-300 outline-none" className="p-4 w-full h-[200px] text-base text-slate-600 dark:text-white bg-white dark:bg-black border border-slate-300 outline-none"
// rows="10" // rows="10"
style={{ resize: "none" }} style={{ resize: "none" }}
name="message" name="message"
@@ -538,13 +538,13 @@ function ActiveJobs(props) {
<p className="text-lg font-bold text-dark-gray dark:text-white tracking-wide"> <p className="text-lg font-bold text-dark-gray dark:text-white tracking-wide">
Message Message
</p> </p>
<button {/* <button
type="button" type="button"
onClick={popUpHandler} onClick={popUpHandler}
className="btn-gradient text-base tracking-wide px-4 py-2 rounded-full text-white cursor-pointer flex justify-center items-center" className="btn-gradient text-base tracking-wide px-4 py-2 rounded-full text-white cursor-pointer flex justify-center items-center"
> >
View all View all
</button> </button> */}
</div> </div>
{props.activeJobMesList.loading ? ( {props.activeJobMesList.loading ? (
<LoadingSpinner size="16" color="sky-blue" /> <LoadingSpinner size="16" color="sky-blue" />
@@ -112,7 +112,7 @@ function ReviewJobAction({jobDetails}) {
<tr> <tr>
<td> <td>
<div className="flex justify-center items-center"> <div className="flex justify-center items-center">
<button type="button" onClick={popUpHandler} className="w-[150px] h-11 flex justify-center items-center btn-gradient text-base rounded-full text-white"> <button type="button" onClick={popUpHandler} className="w-[130px] h-11 flex justify-center items-center btn-gradient text-base rounded-full text-white">
Reject or Accept Reject or Accept
</button> </button>
</div> </div>
+2 -15
View File
@@ -288,23 +288,10 @@ const AuthRoute = ({ redirectPath = "/login", children }) => {
} }
}; };
getFamilyResourcesList() getFamilyResourcesList()
}, [isLogin.status, familyBannersListTable]); }, [isLogin.status]);
// useEffect(() => {
// apiCall
// .getHeroJBanners()
// .then((res) => {
// if (res.data.internal_return < 0) {
// return;
// }
// dispatch(commonHeadBanner(res.data));
// })
// .catch((error) => {
// console.log("ERROR ", error);
// });
// }, []);
//
// RENDER PAGE
return isLogin.loading && !loggedIn ? ( return isLogin.loading && !loggedIn ? (
<LoadingSpinner size="32" color="sky-blue" height="h-screen" /> <LoadingSpinner size="32" color="sky-blue" height="h-screen" />
) : !isLogin.status && !loggedIn ? ( ) : !isLogin.status && !loggedIn ? (
+1 -1
View File
@@ -39,7 +39,7 @@ function ManageActiveJobs() {
loading: false, loading: false,
error: false, error: false,
data: res.data.result_list, data: res.data.result_list,
image: res.data.session_image_server image: res.data.session_image_server,
}); });
}) })
.catch((error) => { .catch((error) => {