From 4f2a40631c731b00f5da16d20e8ec080997e4f72 Mon Sep 17 00:00:00 2001 From: romai Date: Thu, 19 Dec 2024 04:00:04 +0400 Subject: [PATCH] =?UTF-8?q?=D0=9F=D1=80=D0=BE=D0=B2=D0=B5=D1=80=D0=BA?= =?UTF-8?q?=D0=B0=20=D0=BD=D0=B0=20=D0=BA=D0=BE=D1=80=D1=80=D0=B5=D1=82?= =?UTF-8?q?=D0=BD=D0=BE=D1=81=D1=82=D1=8C=20=D0=B2=D0=B2=D0=BE=D0=B4=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../frontend/src/common/SearchBar.jsx | 44 +++++++++++++++---- 1 file changed, 36 insertions(+), 8 deletions(-) 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)} /> )}