import LtrTextField from "@/core/components/LtrTextField"; import MuiDatePicker from "@/core/components/MuiDatePicker"; import MuiTimePicker from "@/core/components/MuiTimePicker"; import { FINISH_MISSION } from "@/core/utils/routes"; import useRequest from "@/lib/hooks/useRequest"; import { yupResolver } from "@hookform/resolvers/yup"; import { Button, DialogActions, DialogContent, Stack, Typography } from "@mui/material"; import { format } from "date-fns-jalali"; import { useState } from "react"; import { Controller, useForm } from "react-hook-form"; import { mixed, object, string } from "yup"; const FinishMissionContent = ({ rowId, mutate, setOpenFinishMissionDialog }) => { const [submitting, setSubmitting] = useState(false); const requestServer = useRequest({ notificationSuccess: true }); const validationSchema = object().shape({ end_km: string().required("لطفاً کیلومتر را وارد کنید."), start_date: mixed().required("تاریخ خروج خودرو را مشخص کنید."), start_time: mixed().required("ساعت خروج خودرو را مشخص کنید."), }); const { control, handleSubmit, formState: { isSubmitting }, } = useForm({ defaultValues: { end_km: "", start_date: null, start_time: null, }, resolver: yupResolver(validationSchema), mode: "all", }); const onSubmit = (values) => { const formattedDate = values.start_date; const formattedTime = format(values.start_time, "HH:mm"); requestServer(`${FINISH_MISSION}/${rowId}`, "post", { data: { end_km: values.end_km, time: `${formattedDate} ${formattedTime}`, }, hasSidebarUpdate: true, }) .then(() => { mutate(); setOpenFinishMissionDialog(false); setSubmitting(false); }) .catch(() => { setSubmitting(false); }); }; return ( <> آیا از ورود خودرو و پایان ماموریت اطمینان دارید؟ ( { if (isNaN(Number(e.target.value))) return; field.onChange(e.target.value); }} size="small" sx={{ width: "100%" }} fullWidth label="کیلومتر خودرو / ساعت کار" InputLabelProps={{ shrink: true }} /> )} /> ( field.onChange(value || null)} helperText={error ? error.message : null} /> )} /> ( field.onChange(value || null)} helperText={error ? error.message : null} /> )} /> ); }; export default FinishMissionContent;