import ClearIcon from "@mui/icons-material/Clear"; import { Box, FormHelperText, IconButton, InputAdornment } from "@mui/material"; import { AdapterDateFnsJalali } from "@mui/x-date-pickers/AdapterDateFnsJalali"; import { faIR } from "@mui/x-date-pickers/locales"; import { LocalizationProvider } from "@mui/x-date-pickers/LocalizationProvider"; import { MobileTimePicker } from "@mui/x-date-pickers/MobileTimePicker"; import { parseISO } from "date-fns"; const parseIfString = (val) => val instanceof Date ? val : typeof val === "string" && val !== "" ? parseISO(val) : null; function MuiTimePicker({ value, setFieldValue, views = ["hours", "minutes"], name, minTime, maxTime, helperText, placeholder, error, label, }) { // Ensure value, minTime, maxTime are Date objects const parsedValue = parseIfString(value); const parsedMinTime = parseIfString(minTime); const parsedMaxTime = parseIfString(maxTime); return ( <> { setFieldValue(name, newValue); }} minTime={parsedMinTime} maxTime={parsedMaxTime} slotProps={{ textField: { placeholder: placeholder, size: "small", error: error, InputLabelProps: { shrink: true, }, InputProps: { endAdornment: ( { event.stopPropagation(); setFieldValue(name, ""); }} sx={{ color: "#bfbfbf", "&:hover": { backgroundColor: "rgba(189, 189, 189, 0.1)", color: "#363434", }, }} > ), }, }, }} /> {helperText && ( {helperText} )} ); } export default MuiTimePicker;