|
|
|
@ -29,6 +29,7 @@ import {
|
|
|
|
RANGE_FILTERS_KEYS,
|
|
|
|
RANGE_FILTERS_KEYS,
|
|
|
|
RANGE_FILTERS_MAP
|
|
|
|
RANGE_FILTERS_MAP
|
|
|
|
} from "../stores/usePendingPointsFilters.js";
|
|
|
|
} from "../stores/usePendingPointsFilters.js";
|
|
|
|
|
|
|
|
import { useUpdateLayerCounter } from "../stores/useUpdateLayerCounter.js";
|
|
|
|
|
|
|
|
|
|
|
|
export const MapComponent = () => {
|
|
|
|
export const MapComponent = () => {
|
|
|
|
const mapRef = useRef(null);
|
|
|
|
const mapRef = useRef(null);
|
|
|
|
@ -39,6 +40,7 @@ export const MapComponent = () => {
|
|
|
|
const { setLayersVisibility } = useLayersVisibility();
|
|
|
|
const { setLayersVisibility } = useLayersVisibility();
|
|
|
|
const { mode } = useMode();
|
|
|
|
const { mode } = useMode();
|
|
|
|
const { tableState, openTable } = useTable();
|
|
|
|
const { tableState, openTable } = useTable();
|
|
|
|
|
|
|
|
const { toggleUpdatePVZLayer } = useUpdateLayerCounter();
|
|
|
|
|
|
|
|
|
|
|
|
const { data: postamatesAndPvzGroups } = usePostamatesAndPvzGroups();
|
|
|
|
const { data: postamatesAndPvzGroups } = usePostamatesAndPvzGroups();
|
|
|
|
const { data: otherGroups } = useOtherGroups();
|
|
|
|
const { data: otherGroups } = useOtherGroups();
|
|
|
|
@ -62,6 +64,23 @@ export const MapComponent = () => {
|
|
|
|
return [...res, ...icons];
|
|
|
|
return [...res, ...icons];
|
|
|
|
}, [icons, filteredPostamatesGroups, filteredOtherGroups]);
|
|
|
|
}, [icons, filteredPostamatesGroups, filteredOtherGroups]);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
useEffect(() => {
|
|
|
|
|
|
|
|
mapIcons.map((icon) => {
|
|
|
|
|
|
|
|
const img = new Image(
|
|
|
|
|
|
|
|
icon.size?.width || 64,
|
|
|
|
|
|
|
|
icon.size?.height || 64
|
|
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
img.src = icon.url;
|
|
|
|
|
|
|
|
img.crossOrigin = "Anonymous";
|
|
|
|
|
|
|
|
img.onload = () => {
|
|
|
|
|
|
|
|
mapRef.current.addImage(icon.name, img);
|
|
|
|
|
|
|
|
toggleUpdatePVZLayer();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
img.src = icon.url;
|
|
|
|
|
|
|
|
img.crossOrigin = "Anonymous";
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
}, [mapIcons]);
|
|
|
|
|
|
|
|
|
|
|
|
const mapLayersIds = useMemo(() => {
|
|
|
|
const mapLayersIds = useMemo(() => {
|
|
|
|
const res = []
|
|
|
|
const res = []
|
|
|
|
|
|
|
|
|
|
|
|
@ -189,20 +208,6 @@ export const MapComponent = () => {
|
|
|
|
onClick={handleClick}
|
|
|
|
onClick={handleClick}
|
|
|
|
onMouseEnter={handleMouseEnter}
|
|
|
|
onMouseEnter={handleMouseEnter}
|
|
|
|
onMouseLeave={handleMouseLeave}
|
|
|
|
onMouseLeave={handleMouseLeave}
|
|
|
|
onLoad={() => {
|
|
|
|
|
|
|
|
mapIcons.map((icon) => {
|
|
|
|
|
|
|
|
const img = new Image(
|
|
|
|
|
|
|
|
icon.size?.width || 64,
|
|
|
|
|
|
|
|
icon.size?.height || 64
|
|
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
img.src = icon.url;
|
|
|
|
|
|
|
|
img.crossOrigin = "Anonymous";
|
|
|
|
|
|
|
|
img.onload = () =>
|
|
|
|
|
|
|
|
mapRef.current.addImage(icon.name, img);
|
|
|
|
|
|
|
|
img.src = icon.url;
|
|
|
|
|
|
|
|
img.crossOrigin = "Anonymous";
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
}}
|
|
|
|
|
|
|
|
id="map"
|
|
|
|
id="map"
|
|
|
|
>
|
|
|
|
>
|
|
|
|
{popup && (
|
|
|
|
{popup && (
|
|
|
|
|