import { ChevronDownIcon } from '@heroicons/react/24/solid'; import { format } from 'date-fns'; import { FieldHookConfig, useField } from 'formik'; import React, { useCallback, useEffect, useState } from 'react'; import { formStyles } from '../../../utils/formClasses'; import { Calendar } from '../../Calendar/Calendar'; const styles = { select: `text-xs bg-none rounded-md outline-none appearance-none border-cu-black-100 text-cu-black-900 focus:border-red-500 focus:ring-0`, }; export interface PickerProps { label?: string; } export const DateTimePicker = ({ label, ...props }: PickerProps & FieldHookConfig) => { const [field, meta, helper] = useField(props); const [selectedDate, setSelectedDate] = useState( format(new Date(0), 'yyyy-MM-dd') ); const [minutes, setMinutes] = useState('00'); const [hours, setHours] = useState('01'); const [noon, setNoon] = useState('AM'); const callbackcal = useCallback( (itemSelected: any) => setSelectedDate(format(new Date(itemSelected), 'yyyy-MM-dd')), [setSelectedDate] ); const convertTime12to24 = (time12h: any) => { const [time, modifier] = time12h.split(' '); let [hours, minutes] = time.split(':'); if (hours === '12') { hours = '00'; } if (modifier === 'PM') { hours = parseInt(hours, 10) + 12; } return `${hours}:${minutes}`; }; const time = convertTime12to24(`${hours}:${minutes} ${noon}`); const handleMinutesChange = (event: any) => { setMinutes(event.target.value); }; const handleHoursChange = (event: any) => { setHours(event.target.value); field.onChange(event); }; const handleNoonChange = (event: any) => { setNoon(event.target.value); field.onChange(event); }; useEffect(() => { helper.setValue(selectedDate + ' ' + time); }, [time, selectedDate]); return (
); };