diff --git a/src/components/FamilyAcc/FamilyPopout/AssignMediaTask.jsx b/src/components/FamilyAcc/FamilyPopout/AssignMediaTask.jsx
new file mode 100644
index 0000000..1014f8b
--- /dev/null
+++ b/src/components/FamilyAcc/FamilyPopout/AssignMediaTask.jsx
@@ -0,0 +1,287 @@
+import React, { useEffect, useState } from 'react'
+import LoadingSpinner from '../../Spinners/LoadingSpinner'
+import { NewTasks } from './forms'
+import { PriceFormatter } from '../../Helpers/PriceFormatter'
+import { useSelector } from 'react-redux';
+import { InputCom } from '../../AddJob/settings';
+
+export default function AssignMediaTask({
+ commonMedia,
+ requestStatus,
+ assignFamilyTask,
+ activeMedia,
+ handleActiveMedia,
+ closeModal
+}) {
+
+ const {userDetails} = useSelector((state) => state?.userDetails); // CHECKS IF USER Details are avaliable, to determine if user is active
+
+ const { walletDetails } = useSelector((state) => state?.walletDetails); // WALLET STORE
+
+ let imageSrc = (localStorage.getItem("session_token")
+ ? `${userDetails?.session_image_server}${localStorage.getItem("session_token")}/job/${activeMedia.uid}` : ""); // FOR GETTING JOB IMAGE
+
+// const handleInputChange = (event) => {
+// const { name, value } = event.target;
+// setFormState((prevState) => ({
+// ...prevState,
+// [name]: value,
+// }));
+// };
+
+ return (
+ <>
+ {commonMedia?.loading ? (
+
+
+
+ ) : (
+ <>
+
+
+
+ {commonMedia?.data?.length ? (
+ commonMedia?.data?.map((item, index) => (
+
handleActiveMedia(item)}
+ >
+
+ handleActiveMedia(item)
+ }
+ className="w-[15px] h-[15px] cursor-pointer"
+ />
+
+ {item?.title}
+
+
+ ))
+ ) : (
+
+ No Media found!
+
+ )}
+
+
+
+ {/*Right Hand Side for details && Task Type === select */}
+ <>
+ {commonMedia?.data?.length > 0 ? (
+
+
+
+
+
+ {activeMedia?.description}
+
+
+
+
+
+

+
+
+
+ {/* Price */}
+
+
+
+
+
+ {/* Currency */}
+
+
+
+
+
+
+ {/* Duration */}
+
+
+
+
+
+ {/* Delivery Detail */}
+
+
+
+
+
+
+ ) : (
+ <>>
+ )}
+ >
+
+
+ {/* BTN */}
+
+ {/* error or success display */}
+
+ {requestStatus.message != "" &&
+ (!requestStatus.status ? (
+
+ {requestStatus.message}
+
+ ) : (
+ requestStatus.status && (
+
+ {requestStatus.message}
+
+ )
+ ))}
+
+
+ {/* End of error or success display */}
+
+
+
+ {requestStatus.loading ? (
+
+ ) : (
+
+ )
+ }
+
+
+
+ >
+ )
+ }
+ >
+ )
+}
+
+
+
+const publicArray = [
+ { duration: 1, name: "1 day" },
+ { duration: 2, name: "2 days" },
+ { duration: 3, name: "3 days" },
+ { duration: 4, name: "4 days" },
+ { duration: 5, name: "5 days" },
+ { duration: 6, name: "6 days" },
+ { duration: 7, name: "1 week" },
+ { duration: 14, name: "2 weeks" },
+ { duration: 21, name: "3 weeks" },
+ { duration: 28, name: "4 weeks" },
+ ];
\ No newline at end of file
diff --git a/src/components/FamilyAcc/FamilyPopout/AssignPrevNewTask.jsx b/src/components/FamilyAcc/FamilyPopout/AssignPrevNewTask.jsx
new file mode 100644
index 0000000..14a7e8e
--- /dev/null
+++ b/src/components/FamilyAcc/FamilyPopout/AssignPrevNewTask.jsx
@@ -0,0 +1,263 @@
+import React from 'react'
+import LoadingSpinner from '../../Spinners/LoadingSpinner'
+import { NewTasks } from './forms'
+import { PriceFormatter } from '../../Helpers/PriceFormatter'
+import { useSelector } from 'react-redux';
+
+export default function AssignPrevNewTask({
+ familyTask,
+ requestStatus,
+ assignFamilyTask,
+ taskType,
+ switchTaskType,
+ formState,
+ setFormState,
+ activeTask,
+ handleActiveTask,
+ closeModal
+}) {
+
+ const {userDetails} = useSelector((state) => state?.userDetails); // CHECKS IF USER Details are avaliable, to determine if user is active
+
+
+ let imageSrc = (localStorage.getItem("session_token")
+ ? `${userDetails?.session_image_server}${localStorage.getItem("session_token")}/job/${activeTask.data.job_uid}` : ""); // FOR GETTING JOB IMAGE
+
+ return (
+ <>
+ {familyTask?.loading ? (
+
+
+
+ ) : (
+ <>
+
+
+
+ {/* Task Type === select */}
+ {taskType == "select" && (
+
+ {familyTask?.data?.length ? (
+ familyTask?.data?.map((item, index) => (
+
handleActiveTask(item.job_uid, item)}
+ >
+
+ handleActiveTask(item.job_uid, item)
+ }
+ className="w-[15px] h-[15px] cursor-pointer"
+ />
+
+ {item?.title}
+
+
+ ))
+ ) : (
+
+ No Task found!
+
+ )}
+
+ )}
+ {taskType == "new" && (
+
+
+
+ )}
+
+
+ {/*Right Hand Side for details && Task Type === select */}
+ {taskType == "select" && (
+ <>
+ {familyTask?.data?.length > 0 ? (
+
+
+
+ {activeTask?.data?.title}
+
+ {/*
+
+
*/}
+
+
+
+ {activeTask?.data?.description}
+
+
+
+
+
+
+
+ {PriceFormatter(
+ activeTask?.data?.price * 0.01,
+ activeTask?.data?.currency,
+ activeTask?.data?.curreny_code
+ )}
+
+
+
+
+
+
{`${activeTask?.data?.timeline_days} day(s)`}
+
+
+
+
+

+
+
+
+
+ {/* Dummy, no value found for created! thus commented*/}
+ {/*
+
+
*/}
+
+
+
+
+
+
+
+ ) : (
+ <>>
+ )}
+ >
+ )}
+
+
+ {/* BTN */}
+
+ {/* error or success display */}
+
+ {requestStatus.message != "" &&
+ (!requestStatus.status ? (
+
+ {requestStatus.message}
+
+ ) : (
+ requestStatus.status && (
+
+ {requestStatus.message}
+
+ )
+ ))}
+
+
+ {/* End of error or success display */}
+
+
+
+ {requestStatus.loading ? (
+
+ ) : (
+
+ )
+ // : (
+ //
+ // )
+ }
+
+
+
+ >
+ )
+ }
+ >
+ )
+}
diff --git a/src/components/FamilyAcc/FamilyPopout/AssignTaskPopout.jsx b/src/components/FamilyAcc/FamilyPopout/AssignTaskPopout.jsx
index 5c6f5f5..bf2b0ca 100644
--- a/src/components/FamilyAcc/FamilyPopout/AssignTaskPopout.jsx
+++ b/src/components/FamilyAcc/FamilyPopout/AssignTaskPopout.jsx
@@ -11,6 +11,9 @@ import { NewTasks } from "./forms";
import { SocketValues } from "../../Contexts/SocketIOContext";
import { errorMsg } from "../../../lib/errorMsg";
+import AssignPrevNewTask from "./AssignPrevNewTask";
+import AssignMediaTask from "./AssignMediaTask";
+
const AssignTaskPopout = ({
action,
details,
@@ -20,7 +23,7 @@ const AssignTaskPopout = ({
activeTask,
setActiveTask,
setUpdatePage,
- assignTaskChecker,
+ // assignTaskChecker,
}) => {
const {parentAssignJobToKid} = SocketValues()
@@ -54,6 +57,21 @@ const AssignTaskPopout = ({
message: "",
}); // HOLDS RESPONSE FOR SENDING API REQUEST
+ let [commonMedia, setCommonMedia] = useState({loading: true, data: [], image: ''}) // HOLDS COMMON MEDIA DATA
+ let [activeMedia, setActiveMedia] = useState({}) // HOLDS ACTIVE COMMON MEDIA DATA
+ const handleActiveMedia = (data = {}) => {
+ // FUNCTION TO CHANGE SELECTED ACTIVE MEDIA
+ setActiveMedia({...data});
+ };
+
+
+ let [assignType, setAssignType] = useState("task"); // SWITCHES BTW TASK AND MEDIA ASSIGNMENT
+
+ const switchAssignType = ({ target: { name } }) => {
+ // FUNCTION TO CHANGE ASSIGN TASK TYPE
+ setAssignType(name);
+ };
+
let [taskType, setTaskType] = useState(details ? "new" : "select"); // SWITCHES BTW SELECT TASK AND NEW TASK
const switchTaskType = ({ target: { value } }) => {
@@ -90,13 +108,13 @@ const AssignTaskPopout = ({
}
let reqData = {};
- if (taskType == "select") {
+ if (taskType == "select" && assignType == 'task') {
// RUNS HERE IF TASK TYPE IS SELECT
if (!Object.keys(activeTask.data).length) {
setRequestStatus({
loading: false,
status: false,
- message: "No Task is seleted",
+ message: "No Task is selected",
});
return setTimeout(() => {
setRequestStatus({ loading: false, status: false, message: "" });
@@ -114,7 +132,7 @@ const AssignTaskPopout = ({
};
}
- if (taskType === "new") {
+ if (taskType === "new" && assignType == 'task') {
const {
banner,
category,
@@ -169,6 +187,13 @@ const AssignTaskPopout = ({
};
}
+ if(assignType == 'media'){ // FOR ASSIGNING MEDIA TASK
+ setRequestStatus({ loading: false, status: false, message: "You cannnot assign, work still process" });
+ return setTimeout(()=>{
+ setRequestStatus({ loading: false, status: false, message: "" });
+ },2000)
+ }
+
apiCall
.assignFamilyTask(reqData)
.then((res) => {
@@ -225,10 +250,11 @@ const AssignTaskPopout = ({
setRequestStatus({ loading: false, status: false, message: "" });
}, 5000);
});
- };
+ };
- let imageSrc = (localStorage.getItem("session_token")
- ? `${userDetails?.session_image_server}${localStorage.getItem("session_token")}/job/${activeTask.data.job_uid}` : ""); // FOR GETTING JOB IMAGE
+ const closeModal = () => { // FOR CLOSING ASSIGN TASK MODAL
+ action()
+ }
useEffect(()=>{ // effect to update family UID when components mounts
if(familyDetailsData?.uid){
@@ -240,6 +266,15 @@ const AssignTaskPopout = ({
}
},[])
+ useEffect(()=>{
+ apiCall.getParentCommonMedia().then((res)=>{
+ console.log('RESPONSE', res)
+ setCommonMedia({loading: false, data: res?.data?.result, image: ''})
+ setActiveMedia(res?.data?.result[0])
+ }).catch(err => {
+ setCommonMedia({loading: false, data: [], image: ''})
+ })
+ },[])
return (
<>
@@ -297,238 +332,49 @@ const AssignTaskPopout = ({
- {familyTask?.loading ? (
-
-
-
- ) : (
- <>
-
+
+
-
- {/* BTN */}
-
- {/* error or success display */}
-
- {requestStatus.message != "" &&
- (!requestStatus.status ? (
-
- {requestStatus.message}
-
- ) : (
- requestStatus.status && (
-
- {requestStatus.message}
-
- )
- ))}
-
-
- {/* End of error or success display */}
-
-
-
- {requestStatus.loading ? (
-
- ) : (
-
- )
- // : (
- //
- // )
- }
-
-
-
- >
- )}
+ Task
+
+
+
+
+ {assignType == 'task' ?
+
+ :
+
+ }
+
+
>
diff --git a/src/components/FamilyAcc/FamilyPopout/dummy.jsx b/src/components/FamilyAcc/FamilyPopout/dummy.jsx
new file mode 100644
index 0000000..375a573
--- /dev/null
+++ b/src/components/FamilyAcc/FamilyPopout/dummy.jsx
@@ -0,0 +1,232 @@
+{familyTask?.loading ? (
+
+
+
+ ) : (
+ <>
+
+
+
+ {/* Task Type === select */}
+ {taskType == "select" && (
+
+ {familyTask?.data?.length ? (
+ familyTask?.data?.map((item, index) => (
+
handleActiveTask(item.job_uid, item)}
+ >
+
+ handleActiveTask(item.job_uid, item)
+ }
+ className="w-[15px] h-[15px] cursor-pointer"
+ />
+
+ {item?.title}
+
+
+ ))
+ ) : (
+
+ No Task found!
+
+ )}
+
+ )}
+ {taskType == "new" && (
+
+
+
+ )}
+
+
+ {/*Right Hand Side for details && Task Type === select */}
+ {taskType == "select" && (
+ <>
+ {familyTask?.data?.length > 0 ? (
+
+
+
+ {activeTask?.data?.title}
+
+ {/*
+
+
*/}
+
+
+
+ {activeTask?.data?.description}
+
+
+
+
+
+
+
+ {PriceFormatter(
+ activeTask?.data?.price * 0.01,
+ activeTask?.data?.currency,
+ activeTask?.data?.curreny_code
+ )}
+
+
+
+
+
+
{`${activeTask?.data?.timeline_days} day(s)`}
+
+
+
+
+

+
+
+
+
+ {/* Dummy, no value found for created! thus commented*/}
+ {/*
+
+
*/}
+
+
+
+
+
+
+
+ ) : (
+ <>>
+ )}
+ >
+ )}
+
+
+ {/* BTN */}
+
+ {/* error or success display */}
+
+ {requestStatus.message != "" &&
+ (!requestStatus.status ? (
+
+ {requestStatus.message}
+
+ ) : (
+ requestStatus.status && (
+
+ {requestStatus.message}
+
+ )
+ ))}
+
+
+ {/* End of error or success display */}
+
+
+
+ {requestStatus.loading ? (
+
+ ) : (
+
+ )
+ // : (
+ //
+ // )
+ }
+
+
+
+ >
+ )}
\ No newline at end of file
diff --git a/src/components/FamilyAcc/FamilyPopout/forms/NewTasks.jsx b/src/components/FamilyAcc/FamilyPopout/forms/NewTasks.jsx
index 38651e9..a5e88c5 100644
--- a/src/components/FamilyAcc/FamilyPopout/forms/NewTasks.jsx
+++ b/src/components/FamilyAcc/FamilyPopout/forms/NewTasks.jsx
@@ -1,13 +1,17 @@
import React, { useEffect, useState } from "react";
import usersService from "../../../../services/UsersService";
import InputCom from "../../../Helpers/Inputs/InputCom";
+import { useSelector } from "react-redux";
export default function NewTasks({ formState, setFormState }) {
- let [currency, setCurrency] = useState({
- loading: true,
- status: false,
- data: null,
- });
+
+ const { walletDetails } = useSelector((state) => state?.walletDetails); // WALLET STORE
+
+ // let [currency, setCurrency] = useState({
+ // loading: true,
+ // status: false,
+ // data: null,
+ // });
const selectImage = require(`../../../../assets/images/taskbanners/${
formState.banner || "default.jpg"
@@ -15,25 +19,25 @@ export default function NewTasks({ formState, setFormState }) {
const ApiCall = new usersService();
// FUNCTION TO GET Currency
- const getUserCurrency = () => {
- setCurrency((prev) => ({ ...prev, loading: true }));
- ApiCall.getUserWallets()
- .then((res) => {
- if (res.data.internal_return < 0) {
- setCurrency({ loading: false, status: true, data: [] });
- return;
- }
+ // const getUserCurrency = () => {
+ // setCurrency((prev) => ({ ...prev, loading: true }));
+ // ApiCall.getUserWallets()
+ // .then((res) => {
+ // if (res.data.internal_return < 0) {
+ // setCurrency({ loading: false, status: true, data: [] });
+ // return;
+ // }
- setCurrency({
- loading: false,
- status: true,
- data: res.data.result_list,
- });
- })
- .catch((err) => {
- setCurrency({ loading: false, status: false, data: [] });
- });
- };
+ // setCurrency({
+ // loading: false,
+ // status: true,
+ // data: res.data.result_list,
+ // });
+ // })
+ // .catch((err) => {
+ // setCurrency({ loading: false, status: false, data: [] });
+ // });
+ // };
const handleInputChange = (event) => {
const { name, value } = event.target;
@@ -43,9 +47,9 @@ export default function NewTasks({ formState, setFormState }) {
}));
};
- useEffect(() => {
- getUserCurrency();
- }, []);
+ // useEffect(() => {
+ // getUserCurrency();
+ // }, []);
return (