import React, { useCallback } from 'react'; import clsx from 'clsx'; import { Spinner, Input, Button } from 'reactstrap'; import { useTranslation } from 'react-i18next'; export interface SearchInputProps { value: string; onChange: (value: string) => void; onButtonClick: () => void; className?: string; loading?: boolean; buttonText?: string; placeholder?: string; additionalButton?: React.ReactNode; } const SearchInput: React.FC = (props) => { const { onChange, onButtonClick } = props; const { t } = useTranslation(); const onInputChange = useCallback( (event: React.ChangeEvent): void => { onChange(event.currentTarget.value); }, [onChange] ); const onInputKeyPress = useCallback( (event: React.KeyboardEvent): void => { if (event.key === 'Enter') { onButtonClick(); } }, [onButtonClick] ); return (
{props.additionalButton}
{props.loading ? ( ) : ( )}
); }; export default SearchInput;