import { useState, useEffect, type FC } from 'react'; import DatePicker from 'react-multi-date-picker'; import persian from 'react-date-object/calendars/persian'; import persian_fa from 'react-date-object/locales/persian_fa'; import DateObject from 'react-date-object'; import { Calendar } from 'iconsax-react'; import { clx } from '@/helpers/utils'; type Props = { onChange: (date: string) => void; defaultValue?: string; error_text?: string; placeholder: string; reset?: boolean; isDateTime?: boolean; className?: string; label?: string, readOnly?: boolean; }; const DatePickerComponent: FC = (props) => { const [value, setValue] = useState(null); useEffect(() => { if (props.reset) { setValue(null); } }, [props.reset]); useEffect(() => { if (value) { const formattedDate = `${value.year}/${value.month.number}/${value.day}`; props.onChange(formattedDate); } }, [value]); useEffect(() => { if (props.defaultValue && !value) { const defaultDate = new DateObject({ date: props.defaultValue, calendar: persian, locale: persian_fa, }); setValue(defaultDate); } }, [props.defaultValue, value]); return (
{ props.label &&
{props.label}
}
setValue(date as DateObject)} calendar={persian} locale={persian_fa} calendarPosition="bottom-right" className={props.className} readOnly={props.readOnly} /> {props.error_text && props.error_text !== '' && (
{props.error_text}
)}
); }; export default DatePickerComponent;