-
-
-
- {tabs.map(({ name, id }) => (
- - tabHandler(name)}
- className={`p-4 flex hover:text-purple transition-all ease-in-out items-center cursor-pointer overflow-hidden text-xl relative top-[2px] ${
- tab === name
- ? "text-purple border-r"
- : "text-thin-light-gray"
- }`}
- key={id}
- >
-
{name}
-
- ))}
-
-
-
-
-
-
-
}
+ let familyWaitingData = familyData.filter(
+ (item) => item.status_text === "Waiting"
+ );
+ let familyPendingData = familyData.filter(
+ (item) => item.status_text !== "Waiting"
+ );
+
+ console.log({
+ Waitings: familyWaitingData,
+ Pending: familyPendingData,
+ Tasks: tasksData
+ });
+
+ // Function to check for errors in data
+ const checkDataError = (data) => data?.internal_return < 0;
+
+ if (
+ checkDataError(tasksData) ||
+ checkDataError(familyWaitingData) ||
+ checkDataError(familyPendingData)
+ ) {
+ return;
+ }
+
+ setDetails({
+ familyTasks: { loading: false, data: tasksData },
+ familyWaitList: { loading: false, data: familyWaitingData },
+ familyPending: { loading: false, data: familyPendingData },
+ });
+ } catch (error) {
+ resetDetails();
+ setErrMsg("An error occurred");
+ throw new Error(error);
+ }
+ };
+
+ // Invoke the manageFamily function when the component mounts
+ manageFamily();
+ }, [updatePage]);
+
+ // Effect to manage family tasks
+ useEffect(() => {
+ let checkFamilyTask = true;
+ const reqData = {
+ limit: 30,
+ offset: 0,
+ job_type: "FAMILY",
+ action: apiConst.WRENCHBOARD_PICTURE_FAMMEMBER,
+ };
+
+ if (checkFamilyTask) {
+ setFamilyTask({ loading: true });
+ apiCall
+ .getMyJobList(reqData)
+ .then((res) => {
+ setFamilyTask({ loading: false, data: res?.data?.result_list });
+ 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);
+ });
+ }
+
+ // Cleanup function to prevent memory leaks
+ return () => {
+ checkFamilyTask = false;
+ };
+ }, []);
+
+ console.log("God please>> ", details.familyWaitList);
+
+ return (
+
+
+
+
+
+ }
+ >
+
+
+
+
+
+ {tabs.map(({ name, id }) => (
+ - tabHandler(name)}
+ className={`p-4 flex hover:text-purple transition-all ease-in-out items-center cursor-pointer overflow-hidden text-xl relative top-[2px] ${
+ tab === name
+ ? "text-purple border-r"
+ : "text-thin-light-gray"
+ }`}
+ key={id}
>
- {selectedTabComponent}
-
-
+
{name}
+
+ ))}
+
+
+
+
+
+
+ }
+ >
+ {selectedTabComponent}
+
-
-
-
- {familyTaskPopout && (
-
- )}
+
+
- );
- }
-
\ No newline at end of file
+
+ {familyTaskPopout && (
+
+ )}
+
+ );
+}
diff --git a/src/components/FamilyAcc/Tabs/FamilyNewTasks.jsx b/src/components/FamilyAcc/Tabs/FamilyNewTasks.jsx
new file mode 100644
index 0000000..338e73b
--- /dev/null
+++ b/src/components/FamilyAcc/Tabs/FamilyNewTasks.jsx
@@ -0,0 +1,168 @@
+import React, { useMemo, useState } from "react";
+import { useLocation, useNavigate } from "react-router-dom";
+import Icons from "../../Helpers/Icons";
+import { PriceFormatter } from "../../Helpers/PriceFormatter";
+import { handlePagingFunc } from "../../Pagination/HandlePagination";
+import PaginatedList from "../../Pagination/PaginatedList";
+import LoadingSpinner from "../../Spinners/LoadingSpinner";
+
+export default function FamilyNewTasks({
+ familyData = [],
+ className,
+ loader,
+ accountDetails,
+}) {
+ let navigate = useNavigate();
+ let { pathname } = useLocation();
+
+ // ...
+ const filteredFamilyData = useMemo(
+ () =>
+ familyData?.result_list?.filter(
+ (data) => data?.family_uid === accountDetails?.family_uid
+ ),
+ [familyData, accountDetails]
+ );
+
+ const [currentPage, setCurrentPage] = useState(0);
+ const indexOfFirstItem = Number(currentPage);
+ const indexOfLastItem =
+ Number(indexOfFirstItem) + Number(process.env.REACT_APP_ITEM_PER_PAGE);
+ const currentTasks = familyData?.slice(indexOfFirstItem, indexOfLastItem);
+
+ const handlePagination = (e) => handlePagingFunc(e, setCurrentPage);
+
+ console.log("This is bad", familyData);
+ return (
+
+ {loader ? (
+
+
+
+ ) : (
+ <>
+ {familyData.length && (
+
+
+
+ {
+ <>
+ {familyData.length > 0 ? (
+ currentTasks.map((value, index) => {
+ // find due date
+ const dueDate = value?.delivery_date.split(" ")[0];
+ // the price
+ let thePrice = PriceFormatter(
+ value?.price * 0.01,
+ value?.currency_code,
+ value?.currency
+ );
+ let image = `${
+ familyData.session_image_server
+ }${localStorage.getItem("session_token")}/job/${
+ value.job_uid
+ }`;
+ return (
+
+
+
+
+ 
+
+
+
+ {value.title}
+
+
+
+ Price:{" "}
+
+ {thePrice}
+
+
+
+ Duration:{" "}
+
+ {" "}
+ {value.timeline_days} day(s)
+
+
+
+ Due Date:{" "}
+
+ {" "}
+ {dueDate}
+
+
+
+
+
+ |
+
+
+
+ |
+
+ );
+ })
+ ) : (
+
+ |
+ No Family Task
+ |
+
+ )}
+ >
+ }
+
+
+ {/* PAGINATION BUTTON */}
+
=
+ familyData?.result_list.length
+ ? true
+ : false
+ }
+ data={familyData?.result_list}
+ start={indexOfFirstItem}
+ stop={indexOfLastItem}
+ />
+ {/* END OF PAGINATION BUTTON */}
+
+ )}
+ >
+ )}
+
+ );
+}
diff --git a/src/components/FamilyAcc/Tabs/FamilyNewWaitlist.jsx b/src/components/FamilyAcc/Tabs/FamilyNewWaitlist.jsx
index 7f9536d..8d928e4 100644
--- a/src/components/FamilyAcc/Tabs/FamilyNewWaitlist.jsx
+++ b/src/components/FamilyAcc/Tabs/FamilyNewWaitlist.jsx
@@ -20,7 +20,7 @@ const FamilyNewWaitlist = ({
const itemsPerPage = Number(process.env.REACT_APP_ITEM_PER_PAGE);
const indexOfFirstItem = currentPage;
const indexOfLastItem = currentPage + itemsPerPage;
- const currentTask = familyData?.result_list?.slice(
+ const currentTask = familyData?.slice(
indexOfFirstItem,
indexOfLastItem
);
@@ -43,6 +43,8 @@ const FamilyNewWaitlist = ({
setContinueTaskPopup({ show: false, data: {} });
};
+ console.log("Check this >>",currentTask)
+
return (
-
-
+
+
Activities
diff --git a/src/components/FamilyPopup/SuggestTask.jsx b/src/components/FamilyPopup/SuggestTask.jsx
index bd0b2ac..2c48115 100644
--- a/src/components/FamilyPopup/SuggestTask.jsx
+++ b/src/components/FamilyPopup/SuggestTask.jsx
@@ -1,10 +1,10 @@
+import { Form, Formik } from "formik";
import { useState } from "react";
import { useLocation } from "react-router-dom";
-import ModalCom from "../Helpers/ModalCom";
-import { Form, Formik } from "formik";
-import InputCom from "../Helpers/Inputs/InputCom";
import usersService from "../../services/UsersService";
import Icons from "../Helpers/Icons";
+import InputCom from "../Helpers/Inputs/InputCom";
+import ModalCom from "../Helpers/ModalCom";
const DEFAULT_IMAGE = require("../../assets/images/family/default.jpg");
const SuggestTask = ({ details, onClose, situation, continuePopupData }) => {
@@ -51,7 +51,7 @@ const SuggestTask = ({ details, onClose, situation, continuePopupData }) => {
};
const handleParentSuggestion = (values) => {
- if (suggestedNextStep == "Send Task") {
+ if (suggestedNextStep === "Send Task") {
let firstName = state?.firstname;
let family_uid = state?.family_uid;
continuePopupData({ ...details, firstName, family_uid });
@@ -59,6 +59,8 @@ const SuggestTask = ({ details, onClose, situation, continuePopupData }) => {
onClose();
};
+ console.log(pathname)
+
return (
@@ -122,12 +124,16 @@ const SuggestTask = ({ details, onClose, situation, continuePopupData }) => {
{
id="description"
rows="5"
className={`input-field pt-2 placeholder:text-base text-dark-gray dark:text-white w-full ${
- pathname === "/manage-family"
+ pathname ===
+ "/manage-family"
? "px-2 h-[110px]"
: "bg-slate-100 px-3 dark:bg-[#11131F] focus:ring-0 focus:outline-[#dce4e9] rounded-[10px] h-[130px]"
}`}
@@ -177,7 +184,8 @@ const SuggestTask = ({ details, onClose, situation, continuePopupData }) => {
{/* Radio buttons for family */}
- {pathname === "/manage-family" ? (
+ {pathname ===
+ "/manage-family" ? (
Parent suggested next step
@@ -212,9 +220,9 @@ const SuggestTask = ({ details, onClose, situation, continuePopupData }) => {
id={`parent-suggested-${idx}`}
name="parent-suggested"
className={`ml-1 ${
- title == "Not Now"
+ title === "Not Now"
? "text-red-500"
- : title == "Duplicate"
+ : title === "Duplicate"
? "text-purple"
: "text-black"
} font-semibold`}
@@ -243,19 +251,20 @@ const SuggestTask = ({ details, onClose, situation, continuePopupData }) => {
disabled={props.isSubmitting}
className="text-white primary-gradient text-18 tracking-wide px-4 py-3 rounded-full transition duration-150 ease-in-out flex items-center"
>
- {pathname !== "/manage-family" ? (
+ {pathname !==
+ "/manage-family" ? (
<>
{submitTask.loading
? "Submitting Task"
- : submitTask.state == "success"
+ : submitTask.state === "success"
? "Task Submitted"
- : submitTask.state == "bad"
+ : submitTask.state === "bad"
? "An Error Occurred"
: "Send to Parents"}
>
) : (
<>
- {suggestedNextStep == "Send Task" ? (
+ {suggestedNextStep === "Send Task" ? (
<>
Continue
>