"use client"; import { forwardRef } from "react"; import { cn } from "@/lib/utils"; interface DatePickerProps { value?: Date; onChange: (date: Date | undefined) => void; placeholder?: string; disabled?: boolean; className?: string; max?: Date; min?: Date; } export const DatePicker = forwardRef( ( { value, onChange, placeholder = "Select date...", disabled = false, className, max, min, }, ref ) => { // Convert Date to YYYY-MM-DD string for input value const formatForInput = (date: Date | undefined): string => { if (!date) return ""; const year = date.getFullYear(); const month = String(date.getMonth() + 1).padStart(2, "0"); const day = String(date.getDate()).padStart(2, "0"); return `${year}-${month}-${day}`; }; const handleChange = (e: React.ChangeEvent) => { const val = e.target.value; if (!val) { onChange(undefined); return; } // Parse YYYY-MM-DD to Date const [year, month, day] = val.split("-").map(Number); const date = new Date(year, month - 1, day); onChange(date); }; const handleClear = () => { onChange(undefined); }; return (
{value && !disabled && ( )}
); } ); DatePicker.displayName = "DatePicker";