diff --git a/src/components/FamilyAcc/FamilyPopout/AssignMediaTask.jsx b/src/components/FamilyAcc/FamilyPopout/AssignMediaTask.jsx
index 1014f8b..19aae99 100644
--- a/src/components/FamilyAcc/FamilyPopout/AssignMediaTask.jsx
+++ b/src/components/FamilyAcc/FamilyPopout/AssignMediaTask.jsx
@@ -1,19 +1,67 @@
-import React, { useEffect, useState } from 'react'
+import React, { useEffect, useState, lazy, Suspense } 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';
+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"),
+ });
+
+
+
+const VideoElement = lazy(() => import("../../VideoCom/VideoElement")); // LAZY IMPORTING VIDEO COMPONENT
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 +69,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 +76,248 @@ 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..545f6b8 100644
--- a/src/components/FamilyAcc/FamilyPopout/AssignTaskPopout.jsx
+++ b/src/components/FamilyAcc/FamilyPopout/AssignTaskPopout.jsx
@@ -187,13 +187,6 @@ 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) => {
@@ -256,6 +249,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, assign_mode:'110012', 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 +350,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 +358,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 +381,11 @@ const AssignTaskPopout = ({
}
diff --git a/src/components/FamilyAcc/FamilyPopout/dummy.jsx b/src/components/FamilyAcc/FamilyPopout/dummy.jsx
deleted file mode 100644
index 375a573..0000000
--- a/src/components/FamilyAcc/FamilyPopout/dummy.jsx
+++ /dev/null
@@ -1,232 +0,0 @@
-{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/VideoCom/VideoElement.jsx b/src/components/VideoCom/VideoElement.jsx
new file mode 100644
index 0000000..aed358e
--- /dev/null
+++ b/src/components/VideoCom/VideoElement.jsx
@@ -0,0 +1,22 @@
+import React, { useEffect, useRef } from 'react'
+
+
+export default function VideoElement({videoId}) {
+ let videoRef = useRef(null)
+
+ useEffect(()=>{
+ if(videoRef.current){
+ videoRef.current.pause()
+ videoRef.current.removeAttribute('src')
+ videoRef.current.load()
+ }
+ },[videoId])
+
+ return (
+
+ )
+}
+
\ No newline at end of file
diff --git a/src/services/UsersService.js b/src/services/UsersService.js
index d15521d..9938ec3 100644
--- a/src/services/UsersService.js
+++ b/src/services/UsersService.js
@@ -1343,7 +1343,19 @@ class usersService {
};
return this.postAuxEnd("/commonmedia", postData);
}
-
+
+ // API FUNCTION FOR PARENT TO ASSIGN MEDIA TASK
+ parentAssignMediaTask(reqData) {
+ var postData = {
+ uid: localStorage.getItem("uid"),
+ member_id: localStorage.getItem("member_id"),
+ sessionid: localStorage.getItem("session_token"),
+ action: apiConst.WRENCHBOARD_JOB_OFFER_SYSTEM,
+ ...reqData
+ };
+ return this.postAuxEnd("/assignmediatask", postData);
+ }
+
/*
- 20:27:30.118 FLOG_MAX [757411]: REQ_STRING(username)
- 20:27:30.118 FLOG_MAX [757411]: REQ_STRING(password)