import StyledForm from "@/core/components/StyledForm";
import { Box, Button, DialogActions, DialogContent, Tab, Tabs } from "@mui/material";
import ExitToAppIcon from "@mui/icons-material/ExitToApp";
import KeyboardDoubleArrowRightIcon from "@mui/icons-material/KeyboardDoubleArrowRight";
import BeenhereIcon from "@mui/icons-material/Beenhere";
import OtherHousesIcon from "@mui/icons-material/OtherHouses";
import LocalShippingIcon from "@mui/icons-material/LocalShipping";
import EditLocationAltIcon from "@mui/icons-material/EditLocationAlt";
import React, { useState } from "react";
import { useForm } from "react-hook-form";
import { yupResolver } from "@hookform/resolvers/yup";
import { mixed, number, object, string } from "yup";
import TollHouseInfo from "./TollHouseInfo";
import KeyboardDoubleArrowLeftIcon from "@mui/icons-material/KeyboardDoubleArrowLeft";
import MachineInfo from "@/components/infrastructure/tollHouse/Form/CreateTollHouse/MachineInfo";
import TollHouseLocation from "@/components/infrastructure/tollHouse/Form/CreateTollHouse/TollHouseLocation";
function TabPanel(props) {
const { children, value, index } = props;
return (
{value === index && {children}}
);
}
const validationSchema = object({
name: string().required("وارد کردن نام راهدارخانه الزامیست!"),
status: string().required("وارد کردن وضعیت الزامیست!"),
type: string().required("وارد کردن نوع الزامیست!"),
phone: string().required("وارد کردن تلفن راهدارخانه الزامیست!"),
team_num: string().required("وارد کردن تعداد اکیپ الزامیست!"),
staff_num: string().required("وارد کردن تعداد پرسنل الزامیست!"),
responsible_name: string().required("وارد کردن نام مسئول الزامیست!"),
responsible_mobile: string()
.required("وارد کردن تلفن مسئول الزامیست!")
.matches(/^09\d{9}$/, "شماره تلفن مسئول باید با ۰۹ شروع شده و ۱۱ رقم باشد!"),
successor_name: string().required("وارد کردن نام جانشین الزامیست!"),
successor_mobile: string()
.required("وارد کردن تلفن جانشین الزامیست!")
.matches(/^09\d{9}$/, "شماره تلفن جانشین باید با ۰۹ شروع شده و ۱۱ رقم باشد!"),
province_id: number().required("وارد کردن استان الزامیست!"),
city_id: number().required("وارد کردن شهرستان الزامیست!"),
machines_light: string().required("وارد کردن ماشین آلات سبک الزامیست!"),
machines_sheavy: string().required("وارد کردن ماشین آلات نیمه سنگین الزامیست!"),
machines_heavy: string().required("وارد کردن ماشین آلات سنگین الزامیست!"),
overview_files_1: mixed().nullable().required("لطفا نمای کلی از راهداری را بارگذاری کنید!"),
overview_files_2: mixed().nullable().required("لطفا آشیانه ماشین آلات را بارگذاری کنید!"),
overview_files_3: mixed().nullable().required("لطفا انباری شن و ماسه را بارگذاری کنید!"),
overview_files_4: mixed().nullable().required("لطفا محیط کاری را بارگذاری کنید!"),
overview_files_5: mixed().nullable().required("لطفا سایر تصاویر را بارگذاری کنید!"),
start_point: mixed()
.test("start-point-required", "لطفاً محل پروژه را مشخص کنید!", function (value) {
return !!value;
})
.required("لطفاً محل پروژه را مشخص کنید!"),
});
const CreateTollHouseContent = ({ setOpen, SubmitCreateTollHouse, defaultValues }) => {
const [tabState, setTabState] = useState(0);
const handleClose = () => {
setOpen(false);
};
const handleChangeTab = (event, newValue) => {
setTabState(newValue);
};
const handleNext = async () => {
let fieldsToValidate = [];
if (tabState === 0) {
fieldsToValidate = [
"name",
"province_id",
"city_id",
"status",
"type",
"phone",
"team_num",
"staff_num",
"responsible_name",
"responsible_mobile",
"successor_name",
"successor_mobile",
];
} else if (tabState === 1) {
fieldsToValidate = [
"machines_light",
"machines_sheavy",
"machines_heavy",
"overview_files_1",
"overview_files_2",
"overview_files_3",
"overview_files_4",
"overview_files_5",
];
} else if (tabState === 2) {
fieldsToValidate = ["start_point"];
}
const isValid = await trigger(fieldsToValidate);
if (isValid) {
setTabState(tabState + 1);
}
};
const handlePrev = () => {
if (tabState === 0) {
handleClose();
} else {
setTabState(tabState - 1);
}
};
const {
control,
handleSubmit,
trigger,
setValue,
formState: { isSubmitting, errors },
} = useForm({
defaultValues,
resolver: yupResolver(validationSchema),
mode: "onBlur",
});
const onSubmitBase = async (data) => {
await SubmitCreateTollHouse(data);
};
return (
} label="اطلاعات راهدارخانه" />
} label="ماشین آلات" />
} label="موقعیت" />
: }
>
{tabState === 0 ? "بستن" : "مرحله قبل"}
{tabState !== 2 && (
}
>
مرحله بعد
)}
{tabState === 2 && (
}
>
{isSubmitting ? "در حال ثبت راهدارخانه" : "ثبت راهدارخانه"}
)}
);
};
export default CreateTollHouseContent;