"use client";
import React, { useContext, useEffect, useRef, useState } from "react";
import { BottomSheet } from "react-spring-bottom-sheet";
import Input from "plugins/Input/page";
import AppContext from "@ctx/AppContext";
import SimpleReactValidator from "simple-react-validator";
import { toast } from "react-toastify";
import Buttonbriz from "plugins/Buttonbriz/page";
import DatePickerIran from "plugins/DatePickerIran/page";
import moment from "jalali-moment";
import validateIranPhone from "plugins/IranPhoneRegex";
const jalaliMoment = require("jalali-moment");
const BottomManageShift = (props) => {
const CTX = useContext(AppContext);
const [firstName, setFirstName] = useState("");
const [lastName, setLastName] = useState("");
const [phoneNumber, setPhoneNumber] = useState("");
const [nationalId, setNationalId] = useState("");
const [gender, setGender] = useState(parseInt(0));
const [birthDate, setBirthDate] = useState(null);
const [roleSelectCurrntData, setRoleSelectCurrntData] = useState("");
const [roleSelectData, setRoleSelectData] = useState([]);
const [, forceUpdate] = useState();
const validator = useRef(
new SimpleReactValidator({
messages: {
required: "پر کردن این فیلد الزامی میباشد",
},
element: (message) => (
<>
{message}
>
),
})
);
const rolesChoose = CTX.state.rolesChoose;
const rolesData = CTX.state.rolesData;
const goToEditUser = CTX.state.goToEditUser;
const idEditUser = CTX.state.idEditUser;
const userData = CTX.state.userData;
const body = {
phoneNumber,
firstName,
lastName,
birthDateTimeStamp:
birthDate &&
moment
.utc(
[birthDate.year, birthDate.month, birthDate.day],
"jYYYY-jMM-jDDTHH"
)
.unix(),
gender: parseInt(gender),
nationalId,
roleIds: rolesChoose,
};
const bodyUpdate = {
phoneNumber,
firstName,
lastName,
birthDateTimeStamp:
birthDate &&
moment
.utc(
[birthDate.year, birthDate.month, birthDate.day],
"jYYYY-jMM-jDDTHH"
)
.unix(),
gender: parseInt(gender),
nationalId,
roleIds: rolesChoose,
userId: userData.id,
};
const clear = () => {
setFirstName("");
setLastName("");
setPhoneNumber("");
setNationalId("");
setGender("");
setBirthDate("");
setRoleSelectCurrntData("");
setRoleSelectData([]);
CTX.setRolesChoose([]);
};
const handleCreateUser = (update) => {
if (validateIranPhone(phoneNumber)) {
if (validator.current.allValid()) {
if (update == "UPDATE") {
CTX.UpdateUser(bodyUpdate);
} else {
CTX.CreateUser(body);
}
} else {
toast.error("پرکردن همه ی فیلد ها واجب است", {
position: "bottom-right",
autoClose: 2000,
hideProgressBar: false,
closeOnClick: true,
pauseOnHover: true,
draggable: true,
progress: undefined,
});
validator.current.showMessages();
forceUpdate(1);
}
} else {
toast.error("شماره تماس را درست وارد کنید", {
position: "bottom-right",
autoClose: 2000,
hideProgressBar: false,
closeOnClick: true,
pauseOnHover: true,
draggable: true,
progress: undefined,
});
}
};
const deleteRole = (id) => {
CTX.setRolesChoose(rolesChoose.filter((el) => el !== id));
};
const handleBottomSheetCreateEmployeesOpen = (e) => {
setRoleSelectData(
rolesData.map((item) => ({
key: item.persianName,
value: item.id,
}))
);
if (e.type == "OPEN") {
CTX.GetRoles();
if (goToEditUser) {
CTX.GetUser(idEditUser);
}
} else if (e.type == "CLOSE") {
// clear();
CTX.setGoToEditUser(false);
CTX.setIdEditUser(null);
CTX.setUserData([]);
}
};
useEffect(() => {
if (goToEditUser) {
const date = moment
.unix(userData.birthDateTimeStamp)
.locale("fa")
.format("YYYY/MM/DD")
.split("/");
setFirstName(userData.firstName);
setLastName(userData.lastName);
setPhoneNumber(userData.phoneNumber);
setNationalId(userData.nationalId);
setGender(userData.gender);
setBirthDate({
day: parseInt(date[2]),
month: parseInt(date[1]),
year: parseInt(date[0]),
});
// setRoleSelectCurrntData("");
CTX.setRolesChoose(userData.roleIds);
}
}, [userData]);
return (
handleBottomSheetCreateEmployeesOpen(e)}
open={CTX.state.BottomManageShiftOpen}
onDismiss={() => CTX.setBottomManageShiftOpen(false)}
blocking={true}
>
تغییر حالت تسک ها یک شیفت خاص
);
};
export default BottomManageShift;