import React, { useCallback } from "react"; import classnames from "classnames"; import { useTranslation } from "react-i18next"; import LoadingButton from "./button/LoadingButton"; import "./SearchInput.css"; export interface SearchInputProps { value: string; onChange: (value: string) => void; onButtonClick: () => void; className?: string; loading?: boolean; buttonText?: string; placeholder?: string; additionalButton?: React.ReactNode; alwaysOneline?: boolean; } const SearchInput: React.FC = (props) => { const { onChange, onButtonClick, alwaysOneline } = 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(); event.preventDefault(); } }, [onButtonClick] ); return (
{props.additionalButton ? (
{props.additionalButton}
) : null}
{props.buttonText ?? t("search")}
); }; export default SearchInput;