diff --git a/src/components/FamilyAcc/FamilyTable.jsx b/src/components/FamilyAcc/FamilyTable.jsx
index 274aabf..b908a73 100644
--- a/src/components/FamilyAcc/FamilyTable.jsx
+++ b/src/components/FamilyAcc/FamilyTable.jsx
@@ -8,6 +8,12 @@ import familyImage from "../../assets/images/no-family-side.png";
import { formatDateString } from "../../lib";
import localImgLoad from "../../lib/localImgLoad";
+/**
+ * Renders a list of family members that can be managed.
+ * It has its current maximum members at 8 and it comes with pagination and loading spinner functionality.
+
+ * @returns {JSX.Element} - The rendered component.
+ */
export default function FamilyTable({
className,
familyList,
@@ -15,8 +21,8 @@ export default function FamilyTable({
popUpHandler,
}) {
const navigate = useNavigate();
-
const [currentPage, setCurrentPage] = useState(0);
+ const itemsPerPage = Number(process.env.REACT_APP_ITEM_PER_PAGE);
const indexOfFirstItem = Number(currentPage);
const indexOfLastItem =
Number(indexOfFirstItem) + Number(process.env.REACT_APP_ITEM_PER_PAGE);
@@ -25,13 +31,94 @@ export default function FamilyTable({
indexOfLastItem
);
+ const handleManageClick = (familyMember) => {
+ navigate("/manage-family", { state: familyMember });
+ };
+
const handlePagination = (e) => {
handlePagingFunc(e, setCurrentPage);
};
+ /**
+ * Renders a table row for a family member.
+ * @returns {JSX.Element} - The table row component.
+ */
+ const FamilyRow = ({
+ firstname,
+ lastname,
+ age,
+ added,
+ last_login,
+ task_count,
+ family_uid,
+ banner,
+ }) => {
+ // Check for valid dates
+ const addedDate = added ? added.split(" ")[0] : "N/A";
+ const loginDate = last_login ? formatDateString(last_login) : "N/A";
+
+ return (
+
+
+
+
+ })
+
+
+
+ {`${firstname} ${lastname} (${age})`}
+
+
+ Added: {addedDate}
+
+
+ Last Login:{" "}
+ {loginDate}
+
+
+
+ |
+
+
+
+ {task_count}
+
+
+ |
+
+
+ |
+
+ );
+ };
+
return (
@@ -40,129 +127,51 @@ export default function FamilyTable({
- ) : familyList?.length > 0 ? (
-
-
-
- | Name |
- {/* Last Login | */}
- No of Tasks |
- |
-
-
-
- {currentFamilyList?.map((props, idx) => {
- let {
- firstname,
- lastname,
- age,
- added,
- last_login,
- task_count,
- family_uid,
- banner,
- } = props;
- let addedDate = added?.split(" ")[0];
- let LoginDate =
- last_login === ""
- ? "never logged in"
- : formatDateString(last_login);
- return (
-
-
-
-
- 
-
-
-
- {`${firstname} ${lastname} (${age})`}
-
-
- Added:{" "}
-
- {addedDate}
-
-
-
- Last Login:{" "}
-
- {LoginDate}
-
-
-
-
- |
- {/*
-
-
- {LoginDate}
-
-
- | */}
-
-
-
- {task_count}
-
-
- |
-
-
- |
-
- );
- })}
-
-
) : (
-
-
-
- Add your family, assign tasks, and get the whole team engaged.
-
-
-
-
-

-
-
+ <>
+ {familyList?.length > 0 ? (
+
+
+
+ | Name |
+ No of Tasks |
+ |
+
+
+
+ {currentFamilyList?.map((familyMember) => {
+ return ;
+ })}
+
+
+ ) : (
+
+
+
+ Add your family, assign tasks, and get the whole team
+ engaged.
+
+
+
+
+

+
+
+ )}
+ >
)}
{/* PAGINATION BUTTON */}
=
- familyList?.length
- ? true
- : false
- }
+ prev={currentPage == 0}
+ next={currentPage + itemsPerPage >= familyList.length}
data={familyList}
start={indexOfFirstItem}
stop={indexOfLastItem}
diff --git a/src/components/FamilyAcc/index.jsx b/src/components/FamilyAcc/index.jsx
index 0c3cee1..390648e 100644
--- a/src/components/FamilyAcc/index.jsx
+++ b/src/components/FamilyAcc/index.jsx
@@ -5,12 +5,12 @@ import React, {
useMemo,
useState,
} from "react";
-import InputCom from "../Helpers/Inputs/InputCom";
-import Layout from "../Partials/Layout";
-import FamilyTable from "./FamilyTable";
import SiteService from "../../services/SiteService";
+import InputCom from "../Helpers/Inputs/InputCom";
import ModalCom from "../Helpers/ModalCom";
+import Layout from "../Partials/Layout";
import LoadingSpinner from "../Spinners/LoadingSpinner";
+import FamilyTable from "./FamilyTable";
export default function FamilyAcc() {
const [selectTab, setValue] = useState("today");
@@ -129,6 +129,8 @@ export default function FamilyAcc() {
};
}, [listReload, memberList]);
+ console.log("Family List ====>", familyList.length);
+
return (
{/**/}
@@ -143,13 +145,16 @@ export default function FamilyAcc() {
>
Family Accounts
-
+ {(familyList.length <
+ process.env.REACT_APP_MAX_FAMILY_MEMBERS && !loader) && (
+
+ )}
diff --git a/src/components/Home/FamilyDash.jsx b/src/components/Home/FamilyDash.jsx
index 7911eb9..dc52bea 100644
--- a/src/components/Home/FamilyDash.jsx
+++ b/src/components/Home/FamilyDash.jsx
@@ -1,12 +1,9 @@
import React from "react";
-import datas from "../../data/product_data.json";
-import TopSellerTopBuyerSliderSection from "./TopSellerTopBuyerSliderSection";
-import CommonHead from "../UserHeader/CommonHead";
-import FamilyActiveLSlde from "./FamilyActiveLSlde";
import ParentWaiting from "../MyPendingJobs/ParentWaiting";
import MyOffersFamilyTable from "../MyTasks/MyOffersFamilyTable";
+import FamilyActiveLSlde from "./FamilyActiveLSlde";
-export default function FamilyDash({familyOffers, MyActiveJobList}) {
+export default function FamilyDash({ familyOffers, MyActiveJobList }) {
console.log("PROPS IN FAMILY DASH->", familyOffers);
const trending = MyActiveJobList;
@@ -14,13 +11,13 @@ export default function FamilyDash({familyOffers, MyActiveJobList}) {
{/*
*/}
- {familyOffers && familyOffers.length > 0 &&
-
- }
- {trending && trending.length > 0 &&
-
- }
-
+ {familyOffers && familyOffers.length > 0 && (
+
+ )}
+ {trending && trending.length > 0 && (
+
+ )}
+
{/*
*/}
diff --git a/src/components/MyTasks/MyOffersFamilyTable.jsx b/src/components/MyTasks/MyOffersFamilyTable.jsx
index e161133..1395dc2 100644
--- a/src/components/MyTasks/MyOffersFamilyTable.jsx
+++ b/src/components/MyTasks/MyOffersFamilyTable.jsx
@@ -38,8 +38,7 @@ export default function MyOffersFamilyTable({ className, familyOffers }) {
},
],
};
-
- console.log("YES WE SEE OFFERS", familyOffers);
+ // console.log("YES WE SEE OFFERS", familyOffers);
const trendingSlider = useRef(null);
const prevHandler = () => {
diff --git a/src/components/MyWallet/WalletBox.jsx b/src/components/MyWallet/WalletBox.jsx
index 5ebb9bc..02db619 100644
--- a/src/components/MyWallet/WalletBox.jsx
+++ b/src/components/MyWallet/WalletBox.jsx
@@ -10,7 +10,7 @@ export default function WalletBox({ wallet, payment }) {
return (
-
+
{loading ? (
diff --git a/src/components/MyWallet/WalletItemCard.jsx b/src/components/MyWallet/WalletItemCard.jsx
index ba2860d..95e5df9 100644
--- a/src/components/MyWallet/WalletItemCard.jsx
+++ b/src/components/MyWallet/WalletItemCard.jsx
@@ -12,7 +12,7 @@ import WalletAction from "./WalletAction";
*/
export default function WalletItemCard({ walletItem, payment }) {
const { userDetails } = useSelector((state) => state.userDetails);
- const accountType = userDetails?.account_type === 'FAMILY';
+ const accountType = userDetails?.account_type === "FAMILY";
const dispatch = useDispatch();
const [creditPopup, setCreditPopup] = useState({ show: false, data: {} });
@@ -32,12 +32,12 @@ export default function WalletItemCard({ walletItem, payment }) {
*/
const closePopUp = () => {
setCreditPopup({ show: false, data: {} });
- dispatch(tableReload({ type: 'WALLETTABLE' }));
+ dispatch(tableReload({ type: "WALLETTABLE" }));
};
const image = walletItem.code
? `${walletItem.code.toLowerCase()}.svg`
- : 'default.png';
+ : "default.png";
return (
<>
@@ -48,7 +48,7 @@ export default function WalletItemCard({ walletItem, payment }) {
}}
>
-
+
-
+
Current Balance
@@ -65,7 +65,7 @@ export default function WalletItemCard({ walletItem, payment }) {
walletItem.amount * 0.01,
walletItem.code,
undefined,
- 'text-[2rem]'
+ "text-[2rem]"
)}
@@ -73,13 +73,13 @@ export default function WalletItemCard({ walletItem, payment }) {
- HOLDINGS :{' '}
+ HOLDINGS :{" "}
{PriceFormatter(
walletItem.escrow * 0.01,
walletItem.code,
undefined,
- 'text-[2rem]'
+ "text-[2rem]"
)}
diff --git a/src/components/Partials/Layout.jsx b/src/components/Partials/Layout.jsx
index 04b702c..0f72419 100644
--- a/src/components/Partials/Layout.jsx
+++ b/src/components/Partials/Layout.jsx
@@ -55,59 +55,29 @@ export default function Layout({ children }) {
return (
<>
-
+
{/* sidebar */}
-
-
dispatch(drawerToggle())}
- myJobList={userJobList}
- />
+
+ dispatch(drawerToggle())} myJobList={userJobList} />
{MobileSideBar && (
- setMobileSidebar.toggle()}
- className="bg-black bg-opacity-20 fixed left-0 top-0 w-full h-full z-[50] block xl:hidden"
- >
+ setMobileSidebar.toggle()} className="bg-black bg-opacity-20 fixed left-0 top-0 w-full h-full z-[50] block xl:hidden">
)}
-
-
setMobileSidebar.toggle()}
- myJobList={userJobList}
- />
+
+ setMobileSidebar.toggle()} myJobList={userJobList} />
{/* end sidebar */}
-