diff --git a/src/components/FamilyAcc/FamilyPopout/AssignTaskPopout.jsx b/src/components/FamilyAcc/FamilyPopout/AssignTaskPopout.jsx index 39ef29f..22e80ab 100644 --- a/src/components/FamilyAcc/FamilyPopout/AssignTaskPopout.jsx +++ b/src/components/FamilyAcc/FamilyPopout/AssignTaskPopout.jsx @@ -31,6 +31,19 @@ function AssignTaskPopout({ action, situation, familyDetails }) { setActiveTask({ id, data }); }; + // New Task + const [formState, setFormState] = useState({ + // Initialize form state with desired fields + banner: "" || "default.jpg", + country: "" || "", + price: "" || "", + title: "" || "", + description: "" || "", + job_detail: "" || "", + timeline_days: "" || "", + category: [] || "", + }); + const assignFamilyTask = () => { setRequestStatus({ loading: true, status: false, message: "" }); let reqData = {}; @@ -54,46 +67,93 @@ function AssignTaskPopout({ action, situation, familyDetails }) { job_description: activeTask.data?.description, assign_mode: 110011, }; + } - apiCall - .assignFamilyTask(reqData) - .then((res) => { - if (res.status != 200 || res.data.internal_return < 0) { - setRequestStatus({ - loading: false, - status: false, - message: "failed to assign task", - }); - return setTimeout(() => { - setRequestStatus({ loading: false, status: false, message: "" }); - }, 5000); - } - setRequestStatus({ - loading: false, - status: true, - message: "action successful", - }); - setTimeout(() => { - setRequestStatus({ loading: false, status: false, message: "" }); - action(); // FUNCTION THAT CLOSES THE MODAL BOX - }, 5000); - }) - .catch((err) => { + if (taskType === "new") { + const { + banner, + category, + country, + description, + job_detail, + price, + timeline_days, + title, + } = formState; + + const requiredFields = [ + banner, + category, + country, + description, + job_detail, + price, + timeline_days, + title, + ]; + + if (requiredFields.some((field) => !field)) { + const emptyField = requiredFields.find((field) => !field); + setRequestStatus({ + loading: false, + status: false, + message: `${emptyField} Empty`, + }); + + setTimeout(() => { + setRequestStatus({ loading: false, status: false, message: "" }); + }, 3000); + + return; + } + + reqData = { + banner, + category, + country, + description, + job_detail, + price: price * 100, + timeline_days, + title, + assign_mode: 110055, + family_uid: familyDetails.uid, + }; + } + + apiCall + .assignFamilyTask(reqData) + .then((res) => { + if (res.status != 200 || res.data.internal_return < 0) { setRequestStatus({ loading: false, status: false, - message: "An Error occured, try again", + message: "failed to assign task", }); - setTimeout(() => { + return setTimeout(() => { setRequestStatus({ loading: false, status: false, message: "" }); }, 5000); + } + setRequestStatus({ + loading: false, + status: true, + message: "action successful", }); - } - - if (taskType == "new") { - // RUNS HERE IF TASK TYPE IS NEW TASK - console.log("TESTING"); - } + setTimeout(() => { + setRequestStatus({ loading: false, status: false, message: "" }); + action(); // FUNCTION THAT CLOSES THE MODAL BOX + }, 5000); + }) + .catch((err) => { + setRequestStatus({ + loading: false, + status: false, + message: "An Error occured, try again", + }); + setTimeout(() => { + setRequestStatus({ loading: false, status: false, message: "" }); + }, 5000); + }); }; useEffect(() => { @@ -120,16 +180,10 @@ function AssignTaskPopout({ action, situation, familyDetails }) { }); }, []); - // New Task - const [newTaskData, setNewTaskData] = useState({}) - const handleNewTaskData = (data) => { - setNewTaskData(data) - } - - console.log("Trying to see form data >>", newTaskData) + console.log("Trying to see form data >>", formState); return ( <> - +

@@ -231,9 +285,12 @@ function AssignTaskPopout({ action, situation, familyDetails }) { )}

)} - {taskType !== "select" && ( + {taskType == "new" && (
- +
)}
@@ -335,7 +392,7 @@ function AssignTaskPopout({ action, situation, familyDetails }) {
{requestStatus.loading ? ( - ) : ( + ) : taskType == "select" ? ( + ) : ( + )}
diff --git a/src/components/FamilyAcc/FamilyPopout/forms/NewTasks.jsx b/src/components/FamilyAcc/FamilyPopout/forms/NewTasks.jsx index a83ac43..22d8e76 100644 --- a/src/components/FamilyAcc/FamilyPopout/forms/NewTasks.jsx +++ b/src/components/FamilyAcc/FamilyPopout/forms/NewTasks.jsx @@ -1,25 +1,16 @@ import React, { useEffect, useState } from "react"; import usersService from "../../../../services/UsersService"; import InputCom from "../../../Helpers/Inputs/InputCom"; +import debounce from "../../../../hooks/debounce"; -export default function NewTasks({ onChange }) { +const DEFAULT_IMAGE = require("../../../../assets/images/taskbanners/default.jpg"); +export default function NewTasks({ formState, setFormState }) { let [currency, setCurrency] = useState({ loading: true, status: false, data: null, }); - const [formState, setFormState] = useState({ - // Initialize form state with desired fields - country: "", - price: "", - title: "", - description: "", - job_detail: "", - timeline_days: "", - category: [], - }); - const ApiCall = new usersService(); // FUNCTION TO GET Currency @@ -49,7 +40,6 @@ export default function NewTasks({ onChange }) { ...prevState, [name]: value, })); - onChange(formState); // Pass the form data to the parent on every change }; useEffect(() => { @@ -57,8 +47,8 @@ export default function NewTasks({ onChange }) { }, []); return ( -
-
+ +
{/* inputs starts here */}
{/* Currency */} @@ -79,13 +69,13 @@ export default function NewTasks({ onChange }) { // onBlur={props.handleBlur} > {currency.loading ? ( - ) : currency.data.length ? ( <> - {currency.data?.map((item, index) => ( {publicArray.map(({ name, duration }, idx) => ( - ))} @@ -210,6 +203,16 @@ export default function NewTasks({ onChange }) {
+ {/* Banner Image */} +
+
+ task_banner_img +
+
); } diff --git a/src/index.css b/src/index.css index cba53b6..48b6ba8 100644 --- a/src/index.css +++ b/src/index.css @@ -941,4 +941,8 @@ TODO: Responsive =========================== .login-type-btn{ box-shadow: 0 0 0.8rem #00000080; +} + +.assign-task-popup{ + top: 75px; } \ No newline at end of file