diff --git a/src/components/dashboard/roadMissions/control/RowActions/FinishMission/FinishMissionContent.jsx b/src/components/dashboard/roadMissions/control/RowActions/FinishMission/FinishMissionContent.jsx index 243d6ab..aa79412 100644 --- a/src/components/dashboard/roadMissions/control/RowActions/FinishMission/FinishMissionContent.jsx +++ b/src/components/dashboard/roadMissions/control/RowActions/FinishMission/FinishMissionContent.jsx @@ -1,14 +1,43 @@ +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 handleClick = () => { - setSubmitting(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(() => { @@ -20,18 +49,55 @@ const FinishMissionContent = ({ rowId, mutate, setOpenFinishMissionDialog }) => setSubmitting(false); }); }; + return ( <> آیا از ورود خودرو و پایان ماموریت اطمینان دارید؟ + + ( + field.onChange(value || null)} + helperText={error ? error.message : null} + /> + )} + /> + + + ( + field.onChange(value || null)} + helperText={error ? error.message : null} + /> + )} + /> + - diff --git a/src/components/dashboard/roadMissions/control/RowActions/StartMission/StartMissionContent.jsx b/src/components/dashboard/roadMissions/control/RowActions/StartMission/StartMissionContent.jsx index c935d94..e0c5ab5 100644 --- a/src/components/dashboard/roadMissions/control/RowActions/StartMission/StartMissionContent.jsx +++ b/src/components/dashboard/roadMissions/control/RowActions/StartMission/StartMissionContent.jsx @@ -1,17 +1,23 @@ import LtrTextField from "@/core/components/LtrTextField"; +import MuiDatePicker from "@/core/components/MuiDatePicker"; +import MuiTimePicker from "@/core/components/MuiTimePicker"; import { START_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 { Controller, useForm } from "react-hook-form"; -import { object, string } from "yup"; +import { mixed, object, string } from "yup"; const StartMissionContent = ({ rowId, mutate, setOpenStartMissionDialog }) => { const requestServer = useRequest({ notificationSuccess: true }); + const now = new Date(); const validationSchema = object().shape({ code: string().length(6, "کد خروج باید 6 رقم باشد").required("لطفاً کد خروج را وارد کنید."), km: string().required("لطفاً کیلومتر را وارد کنید."), + start_date: mixed().required("تاریخ خروج خودرو را مشخص کنید."), + start_time: mixed().required("ساعت خروج خودرو را مشخص کنید."), }); const { @@ -22,16 +28,23 @@ const StartMissionContent = ({ rowId, mutate, setOpenStartMissionDialog }) => { defaultValues: { code: "", 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"); + console.log(formattedDate, formattedTime); + requestServer(`${START_MISSION}/${rowId}`, "post", { data: { code: values.code, km: values.km, + time: `${formattedDate} ${formattedTime}`, }, hasSidebarUpdate: true, }) @@ -93,6 +106,43 @@ const StartMissionContent = ({ rowId, mutate, setOpenStartMissionDialog }) => { )} /> + + ( + field.onChange(value || null)} + helperText={error ? error.message : null} + /> + )} + /> + + + ( + field.onChange(value || null)} + helperText={error ? error.message : null} + /> + )} + /> +