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({ start_date: mixed().required("تاریخ خروج خودرو را مشخص کنید."), start_time: mixed().required("ساعت خروج خودرو را مشخص کنید."), }); const { control, handleSubmit, formState: { isSubmitting }, } = useForm({ defaultValues: { 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: { time: `${formattedDate} ${formattedTime}`, }, hasSidebarUpdate: true, }) .then(() => { mutate(); setOpenFinishMissionDialog(false); setSubmitting(false); }) .catch(() => { setSubmitting(false); }); }; return ( <> آیا از ورود خودرو و پایان ماموریت اطمینان دارید؟ ( field.onChange(value || null)} helperText={error ? error.message : null} /> )} /> ( field.onChange(value || null)} helperText={error ? error.message : null} /> )} /> ); }; export default FinishMissionContent;