fixed code v2

This commit is contained in:
SlimusMinus
2026-08-12 00:38:04 +03:00
parent fe3c91446a
commit e45c9326ed
19 changed files with 233 additions and 124 deletions

View File

@@ -1,6 +1,6 @@
import { useCallback, useEffect, useRef, useState } from "react";
const YANDEX_GEOCODER_API_KEY = import.meta.env.VITE_YANDEX_GEOCODER_KEY;
const YANDEX_GEOCODER_API_KEY = process.env.REACT_APP_YANDEX_GEOCODER_KEY;
export function useYandexMap(enabled, initialCoords = null, initialAddress = "") {
const mapRef = useRef(null);
@@ -21,8 +21,6 @@ export function useYandexMap(enabled, initialCoords = null, initialAddress = "")
)
.then(r => r.json())
.then(data => {
// Игнорируем ответ, если пришёл более новый запрос — иначе
// устаревший ответ может перезаписать адрес актуальных координат.
if (requestId !== requestIdRef.current) return;
const found =
@@ -104,7 +102,12 @@ export function useYandexMap(enabled, initialCoords = null, initialAddress = "")
placemarkRef.current = null;
initializedRef.current = false;
};
}, [enabled, initialCoords, resolveAddress]);
// initialCoords намеренно не в deps — нужен только при первой инициализации,
// а initializedRef защищает от повторного запуска. Объект initialCoords
// пересоздаётся на каждый рендер родителя, поэтому включение его в deps
// приводило бы к пересозданию карты на каждый ввод в форме.
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [enabled, resolveAddress]);
return { mapRef, coords, address, addressRef };
}