import React from "react";
import DatePicker from "@/components/ui/DatePicker";

interface StartDatePickerProps<T extends string> {
  startdate: string;
  setstartdate: (value: string) => void;
  formatDateToString: (date: Date) => string;
  clearError: (field: T) => void;
  handleFieldBlur: (field: T, validateField: (field: T) => string | undefined) => void;
  validateField: (field: T) => string | undefined;
  errors: { startdate?: string };
}

const StartDatePicker = <T extends string>({
  startdate,
  setstartdate,
  formatDateToString,
  clearError,
  handleFieldBlur,
  validateField,
  errors,
}: StartDatePickerProps<T>) => {
  return (
    <div className="group">
      <DatePicker
        label="Start Date"
        value={startdate}
        onChange={(date: Date) => {
          setstartdate(formatDateToString(date));
          clearError("startdate" as T);
        }}
        error={errors.startdate}
        onBlur={() => handleFieldBlur("startdate" as T, validateField)}
        className="text-sm transition-all duration-200 group-hover:shadow-md"
      />
    </div>
  );
};

export default StartDatePicker;
