diff --git a/src/components/FamilyAcc/FamilyPopout/AssignMediaTask.jsx b/src/components/FamilyAcc/FamilyPopout/AssignMediaTask.jsx
index 1014f8b..c2aa59c 100644
--- a/src/components/FamilyAcc/FamilyPopout/AssignMediaTask.jsx
+++ b/src/components/FamilyAcc/FamilyPopout/AssignMediaTask.jsx
@@ -4,16 +4,61 @@ import { NewTasks } from './forms'
import { PriceFormatter } from '../../Helpers/PriceFormatter'
import { useSelector } from 'react-redux';
import { InputCom } from '../../AddJob/settings';
+import * as Yup from "yup";
+import { Form, Formik } from "formik";
+
+// To get the validation schema
+const validationSchema = Yup.object().shape({
+ country: Yup.string()
+ .min(1, "Minimum 3 characters")
+ .max(25, "Maximum 25 characters")
+ .required("required"),
+ amount: Yup.number()
+ .typeError("Invalid number")
+ .min(1, "Must be greater than 0")
+ .test("no-e", "Invalid number", (value) => {
+ if (value && /\d+e/.test(value)) {
+ return false;
+ }
+ return true;
+ })
+ .required("required"),
+ job_description: Yup.string()
+ .min(3, "Minimum 3 characters")
+ .max(499, "Maximum 499 characters")
+ .required("required"),
+ timeline: Yup.number()
+ .typeError("you must specify a number")
+ .min(1, "Must be greater than 0")
+ .required("required"),
+ });
+
+
+
export default function AssignMediaTask({
commonMedia,
requestStatus,
- assignFamilyTask,
+ setRequestStatus,
+ assignMediaTask,
activeMedia,
handleActiveMedia,
- closeModal
+ closeModal,
+ family_uid
}) {
+ // For form initial values
+ const initialValues = {
+ // initial values for formik
+ country: "",
+ amount: "",
+ job_description: "",
+ timeline: "",
+ media_uid: activeMedia.uid,
+ family_uid: family_uid,
+ media_type: "COMMON"
+ };
+
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
@@ -21,14 +66,6 @@ export default function AssignMediaTask({
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 ? (
@@ -36,235 +73,251 @@ export default function AssignMediaTask({
) : (
- <>
-
-
-
- {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 */}
-
-
-
-
- ) : (
- <>>
- )}
- >
-
+
- {/* BTN */}
-
- {/* error or success display */}
-
- {requestStatus.message != "" &&
- (!requestStatus.status ? (
-
- {requestStatus.message}
-
- ) : (
- requestStatus.status && (
-
- {requestStatus.message}
-
+ {/* BTN */}
+
+ {/* error or success display */}
+
+ {requestStatus.message != "" &&
+ (!requestStatus.status ? (
+
+ {requestStatus.message}
+
+ ) : (
+ requestStatus.status && (
+
+ {requestStatus.message}
+
+ )
+ ))}
+
+
+ {/* End of error or success display */}
+
+
+
+ {requestStatus.loading ? (
+
+ ) : (
+
+ )
+ }
+
+
+
+ >
+
)
- ))}
-
-
- {/* 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 bf2b0ca..4561d9f 100644
--- a/src/components/FamilyAcc/FamilyPopout/AssignTaskPopout.jsx
+++ b/src/components/FamilyAcc/FamilyPopout/AssignTaskPopout.jsx
@@ -256,6 +256,25 @@ const AssignTaskPopout = ({
action()
}
+ const assignMediaTask = (values, helpers) => { // FUNCTION TO HANDLE ASSIGNING MEDIA TASK
+ setRequestStatus({ loading: true, status: false, message: "" });
+
+ if(!selectedFamilyUid){ // If no family found, throw error
+ setRequestStatus({ loading: false, status: false, message: "Please Select a Kid" });
+ return setTimeout(() => {
+ setRequestStatus({ loading: false, status: false, message: "" });
+ }, 3000);
+ }
+ // values.family_uid = selectedFamilyUid
+ // values.media_uid = activeMedia.uid
+ // values.amount = values.amount * 100
+ let reqData = {...values, family_uid:selectedFamilyUid, media_uid:activeMedia.uid, amount:values.amount * 100}
+ console.log(reqData)
+ return setTimeout(()=>{
+ setRequestStatus({ loading: false, status: false, message: "" });
+ },2000)
+ }
+
useEffect(()=>{ // effect to update family UID when components mounts
if(familyDetailsData?.uid){
setSelectedFamilyUid(familyDetailsData?.uid)
@@ -338,6 +357,7 @@ const AssignTaskPopout = ({
name='task'
className={`py-1 px-2 font-medium bg-transparent border border-purple text-purple transition-all rounded-md duration-300 ${assignType=='task' && 'bg-yellow-500'}`}
onClick={switchAssignType}
+ disabled={requestStatus.loading}
>
Task
@@ -345,6 +365,7 @@ const AssignTaskPopout = ({
name='media'
className={`py-1 px-2 font-medium bg-transparent border border-purple text-purple transition-all rounded-md duration-300 ${assignType=='media' && 'bg-yellow-500'}`}
onClick={switchAssignType}
+ disabled={requestStatus.loading}
>
Media
@@ -367,10 +388,11 @@ const AssignTaskPopout = ({
}