'use client'; import { format } from 'date-fns'; import { es } from 'date-fns/locale'; import { Calendar as CalendarIcon } from 'lucide-react'; import * as React from 'react'; import { Button } from '@/components/ui/button'; import { Calendar } from '@/components/ui/calendar'; import { Popover, PopoverContent, PopoverTrigger } from '@/components/ui/popover'; import { cn } from '@/lib/utils'; interface DatePickerProps { value?: Date; onChange?: (date: Date | undefined) => void; disabled?: (date: Date) => boolean; className?: string; placeholder?: string; minDate?: Date; } export function DatePicker({ value, onChange, disabled, className, placeholder = 'Selecciona una fecha', minDate, }: DatePickerProps) { const [open, setOpen] = React.useState(false); const isDateDisabled = React.useCallback( (date: Date) => { if (minDate && date < minDate) return true; if (disabled) return disabled(date); return false; }, [minDate, disabled] ); return ( { onChange?.(date); setOpen(false); }} disabled={isDateDisabled} initialFocus /> ); }