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

interface AssetTypeSelectProps<T extends string = string> {
  aassettype: any;
  setaassettype: (value: any) => void;
  clearError: (field: T) => void;
  errors: { aassettype?: string };
  handleFieldBlur: (
    field: T,
    validateField: (field: T) => string | undefined
  ) => void;
  validateField: (field: T) => string | undefined;
  setShowAssetTypeModal: (value: boolean) => void;
}

const AssetTypeSelect = <T extends string = string>({
  aassettype,
  setaassettype,
  clearError,
  errors,
  handleFieldBlur,
  validateField,
  setShowAssetTypeModal,
}: AssetTypeSelectProps<T>) => {
  return (
    <BaseSelectField
      label="Asset Type"
      apiUrl="/api/searchabledropdown/assettype"
      value={aassettype}
      onChange={setaassettype}
      placeholder="Select asset type..."
      enableHoverEffects={true}
      clearError={clearError}
      errors={errors as Partial<Record<T, string>>}
      handleFieldBlur={handleFieldBlur}
      validateField={validateField}
      fieldName={"aassettype" as T}
      showAddButton={true}
      onAddClick={() => setShowAssetTypeModal(true)}
      addButtonTitle="Add new asset type"
    />
  );
};

export default AssetTypeSelect;
