import React from "react";
import { BaseSelectField } from "./BaseSelectField";

interface WithdrawTypeSelectProps<T extends string> {
  withdrawType: { label: string; value: string } | null;
  setWithdrawType: (value: { label: string; value: string } | null) => void;
  clearError: (field: T) => void;
  errors: Partial<Record<T, string>>;
  handleFieldBlur: (
    field: T,
    validateField: (field: T) => string | undefined
  ) => void;
  validateField: (field: T) => string | undefined;
}

const WithdrawTypeSelect = <T extends string>({
  withdrawType,
  setWithdrawType,
  clearError,
  errors,
  handleFieldBlur,
  validateField,
}: WithdrawTypeSelectProps<T>) => {
  return (
    <BaseSelectField
      label="Type"
      apiUrl="/api/searchabledropdown/cashwithdrawtype"
      value={withdrawType}
      onChange={setWithdrawType}
      placeholder="Select withdrawal type..."
      clearError={clearError}
      errors={errors}
      handleFieldBlur={handleFieldBlur}
      validateField={validateField}
      fieldName={"withdrawType" as T}
    />
  );
};

export default WithdrawTypeSelect;
