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({ currency: 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_days: 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, setRequestStatus, assignMediaTask, activeMedia, handleActiveMedia, closeModal, family_uid }) { 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 // For form initial values const initialValues = { // initial values for formik currency: walletDetails.data.length == 1 ? walletDetails.data[0].country : '', amount: "", job_description: "", timeline_days: "", media_uid: activeMedia?.uid, family_uid: family_uid, media_type: "COMMON" }; // let imageSrc = (localStorage.getItem("session_token") // ? `${userDetails?.session_image_server}${localStorage.getItem("session_token")}/job/${activeMedia.uid}` : ""); // FOR GETTING JOB IMAGE return ( <> {commonMedia?.loading ? (
) : ( {assignMediaTask(values, helpers)}} > {(props) => { return (
<>
{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}

Loading...

}>
{/* Price */}
{/* Currency */}
{/* Duration */}
{/* Delivery Detail */}