fix: fill location from autocomplete (#71)
All checks were successful
it-academy/dry-wash-pl/pipeline/head This commit looks good
it-academy/dry-wash-pl/pipeline/pr-main This commit looks good

This commit is contained in:
RustamRu 2025-01-26 15:47:53 +03:00
parent 1471bf94dd
commit 4c26928d23

View File

@ -42,21 +42,29 @@ export const LocationInput = memo(
const onInputChange: InputProps['onChange'] = async (e) => {
const newInputValue = e.target.value;
setInputValue(newInputValue);
if (newInputValue.trim().length > 3) {
try {
const address = extractAddress(newInputValue);
const results = await ymaps.suggest(address);
setSuggestions(results);
} catch (error) {
console.error(error);
}
if (
isValidLocation(newInputValue) &&
(await isRealLocation(ymaps, newInputValue))
) {
onChange(newInputValue);
} else {
setSuggestions([]);
setInputValue(newInputValue);
if (newInputValue.trim().length > 3) {
try {
const address = extractAddress(newInputValue);
const results = await ymaps.suggest(address);
setSuggestions(results);
} catch (error) {
console.error(error);
}
} else {
setSuggestions([]);
}
setIsSuggestionsPanelOpen(suggestions.length > 1);
}
setIsSuggestionsPanelOpen(suggestions.length > 1);
};
const onFocus: InputProps['onFocus'] = () => {
@ -103,7 +111,7 @@ export const LocationInput = memo(
{...props}
ref={ref}
onBlur={onBlur}
value={inputValue}
value={inputValue ?? value}
onChange={onInputChange}
onFocus={onFocus}
placeholder={t('placeholder')}