import React from "react"; interface SearchInputProps { value: string; onChange: (value: string) => void; onSearch: () => void; placeholder?: string; loading?: boolean; disabled?: boolean; minLength?: number; } /** * SearchInput Component * Componente reutilizável para campo de busca com botão de pesquisa * * @param value - Valor atual do input * @param onChange - Callback quando o valor muda * @param onSearch - Callback quando o botão de busca é clicado ou Enter é pressionado * @param placeholder - Texto placeholder do input * @param loading - Indica se está carregando * @param disabled - Indica se está desabilitado * @param minLength - Tamanho mínimo para habilitar a busca */ const SearchInput: React.FC = ({ value, onChange, onSearch, placeholder = "Ex: Cimento, Tijolo, Furadeira...", loading = false, disabled = false, minLength = 3, }) => { const isValid = value.trim().length >= minLength; const handleKeyDown = (e: React.KeyboardEvent) => { if (e.key === "Enter" && !loading && isValid) { onSearch(); } }; return (
onChange(e.target.value)} onKeyDown={handleKeyDown} disabled={disabled || loading} /> {value.trim().length > 0 && value.trim().length < minLength && (

Digite pelo menos {minLength} caracteres

)}
); }; export default SearchInput;