.
This commit is contained in:
@@ -5,6 +5,7 @@ import InputCom from "../Helpers/Inputs/InputCom/index";
|
|||||||
import SiteService from "../../services/SiteService";
|
import SiteService from "../../services/SiteService";
|
||||||
import { Form, Formik, Field } from "formik";
|
import { Form, Formik, Field } from "formik";
|
||||||
import * as Yup from "yup";
|
import * as Yup from "yup";
|
||||||
|
import LoadingSpinner from "../Spinners/LoadingSpinner";
|
||||||
|
|
||||||
const validationSchema = Yup.object().shape({
|
const validationSchema = Yup.object().shape({
|
||||||
family: Yup.string().required("THis is required "),
|
family: Yup.string().required("THis is required "),
|
||||||
@@ -21,13 +22,21 @@ const validationSchema = Yup.object().shape({
|
|||||||
|
|
||||||
function JobListPopout({ details, onClose, situation }) {
|
function JobListPopout({ details, onClose, situation }) {
|
||||||
const [familyList, setFamilyList] = useState([]);
|
const [familyList, setFamilyList] = useState([]);
|
||||||
const [loader, setLoader] = useState(false);
|
let [loader, setLoader] = useState({
|
||||||
|
member: false,
|
||||||
|
jobFields: {
|
||||||
|
family: false,
|
||||||
|
public: false,
|
||||||
|
individual: false,
|
||||||
|
group: false,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
const apiCall = useMemo(() => new SiteService(), []);
|
const apiCall = useMemo(() => new SiteService(), []);
|
||||||
|
|
||||||
// member listing
|
// member listing
|
||||||
const memberList = useCallback(async () => {
|
const memberList = useCallback(async () => {
|
||||||
setLoader(true);
|
setLoader({ member: true, jobFields: false });
|
||||||
try {
|
try {
|
||||||
let reqData = {
|
let reqData = {
|
||||||
limit: 20,
|
limit: 20,
|
||||||
@@ -40,10 +49,10 @@ function JobListPopout({ details, onClose, situation }) {
|
|||||||
if (data?.internal_return >= 0 && data?.status == "OK") {
|
if (data?.internal_return >= 0 && data?.status == "OK") {
|
||||||
let { result_list } = data;
|
let { result_list } = data;
|
||||||
setFamilyList(result_list);
|
setFamilyList(result_list);
|
||||||
setLoader(false);
|
setLoader({ member: false, jobFields: false });
|
||||||
} else return;
|
} else return;
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
setLoader(false);
|
setLoader({ member: false, jobFields: false });
|
||||||
throw new Error(error);
|
throw new Error(error);
|
||||||
}
|
}
|
||||||
}, [apiCall]);
|
}, [apiCall]);
|
||||||
@@ -66,43 +75,60 @@ function JobListPopout({ details, onClose, situation }) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const jobFieldHandler = async (values, helpers) => {
|
const jobFieldHandler = async (values, helpers) => {
|
||||||
setLoader(true);
|
|
||||||
let { job_id, job_uid, job_description } = details;
|
let { job_id, job_uid, job_description } = details;
|
||||||
|
let jobReq = {
|
||||||
|
job_id,
|
||||||
|
job_uid,
|
||||||
|
job_description: job_description !== null ? job_description : " ",
|
||||||
|
};
|
||||||
let reqData;
|
let reqData;
|
||||||
|
|
||||||
// for family input
|
// for family input
|
||||||
values?.family !== "" && console.log(values?.family);
|
if (values?.family !== "") {
|
||||||
|
|
||||||
// for public input
|
|
||||||
if (values?.public !== "") {
|
|
||||||
reqData = {
|
reqData = {
|
||||||
job_id,
|
...jobReq,
|
||||||
job_uid,
|
family_uid: values?.family,
|
||||||
job_description,
|
action: 13025,
|
||||||
|
assign_mode: 110011,
|
||||||
|
};
|
||||||
|
setLoader({ jobFields: { family: true } });
|
||||||
|
} else if (values?.public !== "") {
|
||||||
|
// for public input
|
||||||
|
reqData = {
|
||||||
|
...jobReq,
|
||||||
duration: Number(values?.public),
|
duration: Number(values?.public),
|
||||||
action: 13025,
|
action: 13025,
|
||||||
assign_mode: 110022,
|
assign_mode: 110022,
|
||||||
};
|
};
|
||||||
|
setLoader({ jobFields: { public: true } });
|
||||||
} else if (values?.individual !== "") {
|
} else if (values?.individual !== "") {
|
||||||
// for individual input
|
// for individual input
|
||||||
reqData = {
|
reqData = {
|
||||||
job_id,
|
...jobReq,
|
||||||
job_uid,
|
|
||||||
job_description,
|
|
||||||
email: values?.individual,
|
email: values?.individual,
|
||||||
action: 13025,
|
action: 13025,
|
||||||
assign_mode: 110033,
|
assign_mode: 110033,
|
||||||
};
|
};
|
||||||
|
setLoader({ jobFields: { individual: true } });
|
||||||
|
} else if (values?.group !== "") {
|
||||||
|
// for group input
|
||||||
|
reqData = {
|
||||||
|
...jobReq,
|
||||||
|
email: values?.individual,
|
||||||
|
action: 13025,
|
||||||
|
assign_mode: 110033,
|
||||||
|
};
|
||||||
|
setLoader({ jobFields: { group: true } });
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const res = await apiCall.assignJobTask(reqData);
|
const res = await apiCall.assignJobTask(reqData);
|
||||||
let { data } = await res;
|
let { data } = await res;
|
||||||
setLoader(false);
|
setLoader({ member: false, jobFields: false });
|
||||||
console.log(data);
|
onClose();
|
||||||
throw new Response(data);
|
throw new Response(data);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
setLoader(false);
|
setLoader({ member: false, jobFields: false });
|
||||||
throw new Error(error);
|
throw new Error(error);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -200,7 +226,8 @@ function JobListPopout({ details, onClose, situation }) {
|
|||||||
value={props?.values.family}
|
value={props?.values.family}
|
||||||
data={familyList}
|
data={familyList}
|
||||||
btnText="Assign to family"
|
btnText="Assign to family"
|
||||||
optionText="family"
|
optionText="select family"
|
||||||
|
loader={loader?.jobFields.family}
|
||||||
/>
|
/>
|
||||||
</Form>
|
</Form>
|
||||||
);
|
);
|
||||||
@@ -223,7 +250,8 @@ function JobListPopout({ details, onClose, situation }) {
|
|||||||
value={props?.values.public}
|
value={props?.values.public}
|
||||||
data={publicArray}
|
data={publicArray}
|
||||||
btnText="Show Task to Public"
|
btnText="Show Task to Public"
|
||||||
optionText="Public"
|
optionText="select duration"
|
||||||
|
loader={loader?.jobFields.public}
|
||||||
/>
|
/>
|
||||||
</Form>
|
</Form>
|
||||||
);
|
);
|
||||||
@@ -244,8 +272,10 @@ function JobListPopout({ details, onClose, situation }) {
|
|||||||
input={true}
|
input={true}
|
||||||
inputName="individual"
|
inputName="individual"
|
||||||
value={props?.values.individual}
|
value={props?.values.individual}
|
||||||
|
placeholder="enter email of individual"
|
||||||
inputHandler={props?.handleChange}
|
inputHandler={props?.handleChange}
|
||||||
btnText="Send Offer to Individual"
|
btnText="Send Offer to Individual"
|
||||||
|
loader={loader?.jobFields.individual}
|
||||||
/>
|
/>
|
||||||
</Form>
|
</Form>
|
||||||
);
|
);
|
||||||
@@ -268,6 +298,7 @@ function JobListPopout({ details, onClose, situation }) {
|
|||||||
value={props?.values.group}
|
value={props?.values.group}
|
||||||
btnText="Send Order to Group"
|
btnText="Send Order to Group"
|
||||||
optionText="Group"
|
optionText="Group"
|
||||||
|
loader={loader?.jobFields.group}
|
||||||
/>
|
/>
|
||||||
</Form>
|
</Form>
|
||||||
);
|
);
|
||||||
@@ -288,6 +319,7 @@ const JobFieldInput = ({
|
|||||||
inputHandler,
|
inputHandler,
|
||||||
inputName,
|
inputName,
|
||||||
inputClass,
|
inputClass,
|
||||||
|
placeholder,
|
||||||
input,
|
input,
|
||||||
select,
|
select,
|
||||||
label,
|
label,
|
||||||
@@ -295,6 +327,7 @@ const JobFieldInput = ({
|
|||||||
btnText,
|
btnText,
|
||||||
parentClass,
|
parentClass,
|
||||||
optionText,
|
optionText,
|
||||||
|
loader,
|
||||||
data,
|
data,
|
||||||
}) => {
|
}) => {
|
||||||
return (
|
return (
|
||||||
@@ -327,7 +360,7 @@ const JobFieldInput = ({
|
|||||||
{Array.isArray(data) &&
|
{Array.isArray(data) &&
|
||||||
data?.map((item, idx) => (
|
data?.map((item, idx) => (
|
||||||
<React.Fragment key={idx}>
|
<React.Fragment key={idx}>
|
||||||
{inputName === "family" && (
|
{inputName === "family" && item?.last_login !== "" && (
|
||||||
<option value={item?.family_uid} key={idx}>
|
<option value={item?.family_uid} key={idx}>
|
||||||
{`${item?.firstname} ${item?.lastname}`}
|
{`${item?.firstname} ${item?.lastname}`}
|
||||||
</option>
|
</option>
|
||||||
@@ -357,7 +390,7 @@ const JobFieldInput = ({
|
|||||||
labelClass="tracking-wide"
|
labelClass="tracking-wide"
|
||||||
type="text"
|
type="text"
|
||||||
name={inputName}
|
name={inputName}
|
||||||
placeholder=""
|
placeholder={placeholder}
|
||||||
value={value}
|
value={value}
|
||||||
inputHandler={inputHandler}
|
inputHandler={inputHandler}
|
||||||
inputBg="bg-white"
|
inputBg="bg-white"
|
||||||
@@ -371,7 +404,7 @@ const JobFieldInput = ({
|
|||||||
name={inputName}
|
name={inputName}
|
||||||
className="px-2 py-1 text-sm text-white btn-gradient tracking-wide rounded-md"
|
className="px-2 py-1 text-sm text-white btn-gradient tracking-wide rounded-md"
|
||||||
>
|
>
|
||||||
{btnText}
|
{loader ? <LoadingSpinner size={5} /> : btnText}
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user