test-crud
Version:
es una prueba acerca de como publicar un package name
65 lines (58 loc) • 1.68 kB
JSX
import React, { useEffect } from 'react'
import { useFormikContext } from 'formik'
import DatePicker from '../inputs/datePicker'
import DateTimePicker from '../inputs/dateTimePicker' // 🔥 Importamos el nuevo DateTimePicker
function AppDatePicker({
name,
label,
onSelect,
inputProps,
optional = false,
includeTime = false,
...rest
}) {
const { setFieldValue, setFieldTouched, errors, touched, values } =
useFormikContext()
useEffect(() => {
if (values && !values[name] && !optional) {
setFieldValue(name, new Date())
}
}, [])
useEffect(() => {
if (values[name]) setFieldTouched(name)
}, [values[name]])
const handleDateSelection = (date) => {
setFieldValue(name, typeof date === 'object' ? date : undefined)
onSelect && onSelect(date)
}
return (
<div>
{includeTime ? (
<DateTimePicker
name={name}
label={label}
value={(values && values[name]) || null}
touched={touched[name]}
error={touched[name] && errors[name]}
errorMessage={touched[name] && errors[name] ? errors[name] : ''}
onSelect={handleDateSelection}
inputProps={inputProps}
{...rest}
/>
) : (
<DatePicker
name={name}
label={label}
value={(values && values[name]) || null}
touched={touched[name]}
error={touched[name] && errors[name]}
errorMessage={touched[name] && errors[name] ? errors[name] : ''}
onSelect={handleDateSelection}
inputProps={inputProps}
{...rest}
/>
)}
</div>
)
}
export default AppDatePicker