diff --git a/Address Directory/frontend/src/common/SearchBar.jsx b/Address Directory/frontend/src/common/SearchBar.jsx index d80dc90..9e13217 100644 --- a/Address Directory/frontend/src/common/SearchBar.jsx +++ b/Address Directory/frontend/src/common/SearchBar.jsx @@ -8,12 +8,37 @@ const SearchBar = () => { const [query, setQuery] = useState(''); // Поисковый запрос const [results, setResults] = useState([]); // Результаты поиска const [selectedStreet, setSelectedStreet] = useState(null); // Выбранная улица + const [error, setError] = useState(''); // Сообщение об ошибке + + const handleInputChange = (e) => { + const value = e.target.value; + + // Проверка на наличие цифр + if (/\d/.test(value)) { + setError('Ввод цифр запрещен. Пожалуйста, введите название улицы.'); + } else { + setError(''); + } + + setQuery(value); + }; const handleSearch = async (e) => { e.preventDefault(); - const data = await searchStreet(query); - setResults(data); // Установить результаты поиска - setSelectedStreet(null); // Сбросить выбранный адрес + + // Проверка перед выполнением поиска + if (error) { + alert('Исправьте ошибки перед поиском.'); + return; + } + + try { + const data = await searchStreet(query); + setResults(data); + setSelectedStreet(null); + } catch (err) { + setError('Ошибка поиска. Попробуйте снова.'); + } }; return ( @@ -21,29 +46,32 @@ const SearchBar = () => {
setQuery(e.target.value)} + onChange={handleInputChange} aria-label="Search" /> -
+ {/* Вывод сообщения об ошибке */} + {error &&
{error}
} + {selectedStreet ? (

Информация об адресе

setSelectedStreet(null)} + onBack={() => setSelectedStreet(null)} />
) : ( setSelectedStreet(street)} + onSelect={(street) => setSelectedStreet(street)} /> )}