Merge branch 'enable-and-active-jobs' of WrenchBoard/Users-Wrench into master
This commit is contained in:
@@ -6,7 +6,7 @@ import usersService from "../../services/UsersService";
|
||||
|
||||
import { useSelector } from "react-redux";
|
||||
|
||||
import { Form, Formik } from "formik";
|
||||
import { Field, Form, Formik } from "formik";
|
||||
import * as Yup from "yup";
|
||||
|
||||
const validationSchema = Yup.object().shape({
|
||||
@@ -50,7 +50,7 @@ function AddJob() {
|
||||
const ApiCall = new usersService();
|
||||
const navigate = useNavigate();
|
||||
|
||||
let {userDetails} = useSelector((state)=> state.userDetails)
|
||||
let { userDetails } = useSelector((state) => state.userDetails);
|
||||
|
||||
let [pageLoading, setPageLoading] = useState(true); // State used for knowing when the page is mounting
|
||||
|
||||
@@ -199,7 +199,7 @@ function AddJob() {
|
||||
Select...
|
||||
</option>
|
||||
{country.data.map((item, index) => {
|
||||
if(item[0] == userDetails.country){
|
||||
if (item[0] == userDetails.country) {
|
||||
return (
|
||||
<option
|
||||
key={index}
|
||||
@@ -208,7 +208,7 @@ function AddJob() {
|
||||
>
|
||||
{item[1]}
|
||||
</option>
|
||||
)
|
||||
);
|
||||
}
|
||||
})}
|
||||
</>
|
||||
@@ -316,19 +316,34 @@ function AddJob() {
|
||||
</div>
|
||||
|
||||
<div className="field w-full mb-6">
|
||||
<InputCom
|
||||
fieldClass="px-6"
|
||||
label="Timeline"
|
||||
labelClass="tracking-wide"
|
||||
inputBg="bg-slate-100"
|
||||
type="text"
|
||||
<div className={`flex items-center justify-between mb-2.5`}>
|
||||
<label
|
||||
className="input-label text-[#181c32] dark:text-white text-[13.975px] leading-[20.9625px] font-semibold block"
|
||||
htmlFor="timeline_days"
|
||||
>
|
||||
Timeline
|
||||
<span className="text-green-700 text-sm tracking-wide">
|
||||
- Expected duration of this task
|
||||
</span>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<Field
|
||||
component="select"
|
||||
name="timeline_days"
|
||||
spanTag=" - Expected duration of this task"
|
||||
// placeholder="Please Enter Detail Description of Job"
|
||||
className="input-field p-2 mt-3 rounded-md placeholder:text-base text-dark-gray dark:text-white w-full h-10 bg-slate-100 dark:bg-[#11131F] focus:ring-0 focus:outline-none"
|
||||
value={props.values.timeline_days}
|
||||
inputHandler={props.handleChange}
|
||||
blurHandler={props.handleBlur}
|
||||
/>
|
||||
>
|
||||
<option value="">Select Duration</option>
|
||||
{publicArray.map(({ name, duration }, idx) => (
|
||||
<option
|
||||
className="text-slate-500 text-lg"
|
||||
value={duration}
|
||||
>
|
||||
{name}
|
||||
</option>
|
||||
))}
|
||||
</Field>
|
||||
{props.errors.timeline_days &&
|
||||
props.touched.timeline_days && (
|
||||
<p className="text-sm text-red-500">
|
||||
@@ -396,3 +411,16 @@ function AddJob() {
|
||||
}
|
||||
|
||||
export default AddJob;
|
||||
|
||||
const publicArray = [
|
||||
{ duration: 1, name: "1 day" },
|
||||
{ duration: 2, name: "2 days" },
|
||||
{ duration: 3, name: "3 days" },
|
||||
{ duration: 4, name: "4 days" },
|
||||
{ duration: 5, name: "5 days" },
|
||||
{ duration: 6, name: "6 days" },
|
||||
{ duration: 7, name: "1 week" },
|
||||
{ duration: 14, name: "2 weeks" },
|
||||
{ duration: 21, name: "3 weeks" },
|
||||
{ duration: 28, name: "4 weeks" },
|
||||
];
|
||||
|
||||
@@ -3,12 +3,12 @@ import Detail from "./popoutcomponent/Detail";
|
||||
import ModalCom from "../Helpers/ModalCom";
|
||||
import InputCom from "../Helpers/Inputs/InputCom/index";
|
||||
import SiteService from "../../services/SiteService";
|
||||
import { Form, Formik, Field } from "formik";
|
||||
import { Form, Formik, Field, ErrorMessage } from "formik";
|
||||
import * as Yup from "yup";
|
||||
import LoadingSpinner from "../Spinners/LoadingSpinner";
|
||||
|
||||
const validationSchema = Yup.object().shape({
|
||||
family: Yup.string().required("THis is required "),
|
||||
family: Yup.string().required("This is required "),
|
||||
public: Yup.string(),
|
||||
individual: Yup.string()
|
||||
.email("Invalid email format")
|
||||
@@ -68,18 +68,29 @@ function JobListPopout({ details, onClose, situation }) {
|
||||
group: "",
|
||||
};
|
||||
|
||||
let [inputs, setInputs] = useState({});
|
||||
let [textArea, setTextArea] = useState(details?.job_detail);
|
||||
const [errMsg, setErrMsg] = useState("")
|
||||
|
||||
const handleInputChange = ({ target: { name, value } }) => {
|
||||
setInputs((prev) => ({ ...prev, [name]: value }));
|
||||
const handleInputChange = ({ target: { value } }) => {
|
||||
setTextArea(value);
|
||||
};
|
||||
|
||||
const errorHandler = ({target: {name}}) => {
|
||||
|
||||
}
|
||||
|
||||
const jobFieldHandler = async (values, helpers) => {
|
||||
let { job_id, job_uid, job_detail } = details;
|
||||
let { job_id, job_uid } = details;
|
||||
|
||||
if(!textArea) {
|
||||
setErrMsg("delivery detail is required!")
|
||||
return
|
||||
}
|
||||
|
||||
let jobReq = {
|
||||
job_id,
|
||||
job_uid,
|
||||
job_description: job_detail
|
||||
job_description: textArea
|
||||
};
|
||||
let reqData;
|
||||
|
||||
@@ -119,16 +130,19 @@ function JobListPopout({ details, onClose, situation }) {
|
||||
assign_mode: 110033,
|
||||
};
|
||||
setLoader({ jobFields: { group: true } });
|
||||
} else {
|
||||
setErrMsg("err herre")
|
||||
return
|
||||
}
|
||||
|
||||
try {
|
||||
const res = await apiCall.assignJobTask(reqData);
|
||||
let { data } = await res;
|
||||
setLoader({ member: false, jobFields: false });
|
||||
setLoader({ jobFields: false });
|
||||
onClose();
|
||||
throw new Response(data);
|
||||
} catch (error) {
|
||||
setLoader({ member: false, jobFields: false });
|
||||
setLoader({ jobFields: false });
|
||||
throw new Error(error);
|
||||
}
|
||||
};
|
||||
@@ -200,11 +214,11 @@ function JobListPopout({ details, onClose, situation }) {
|
||||
<textarea
|
||||
className={`p-1 w-full text-sm text-slate-900 outline-none border border-slate-300 rounded-md`}
|
||||
rows="5"
|
||||
name="details"
|
||||
style={{ resize: "none" }}
|
||||
value={details.job_detail}
|
||||
value={textArea}
|
||||
onChange={handleInputChange}
|
||||
/>
|
||||
{/* <p>{errMsg}</p> */}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -226,9 +240,10 @@ function JobListPopout({ details, onClose, situation }) {
|
||||
value={props?.values.family}
|
||||
data={familyList}
|
||||
btnText="Assign to family"
|
||||
optionText="select family"
|
||||
optionText="Select Family"
|
||||
loader={loader?.jobFields.family}
|
||||
/>
|
||||
{/* <p>{errMsg}</p> */}
|
||||
</Form>
|
||||
);
|
||||
}}
|
||||
@@ -250,9 +265,10 @@ function JobListPopout({ details, onClose, situation }) {
|
||||
value={props?.values.public}
|
||||
data={publicArray}
|
||||
btnText="Show Task to Public"
|
||||
optionText="select duration"
|
||||
optionText="Select Duration"
|
||||
loader={loader?.jobFields.public}
|
||||
/>
|
||||
{/* <p>{errMsg}</p> */}
|
||||
</Form>
|
||||
);
|
||||
}}
|
||||
@@ -277,6 +293,7 @@ function JobListPopout({ details, onClose, situation }) {
|
||||
btnText="Send Offer to Individual"
|
||||
loader={loader?.jobFields.individual}
|
||||
/>
|
||||
{/* <p>{errMsg}</p> */}
|
||||
</Form>
|
||||
);
|
||||
}}
|
||||
@@ -300,10 +317,12 @@ function JobListPopout({ details, onClose, situation }) {
|
||||
optionText="Group"
|
||||
loader={loader?.jobFields.group}
|
||||
/>
|
||||
{/* <p>{errMsg}</p> */}
|
||||
</Form>
|
||||
);
|
||||
}}
|
||||
</Formik>
|
||||
|
||||
</div>
|
||||
{/* END OF ACTION SECTION */}
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user