|
@@ -30,7 +30,7 @@ import {
|
|
|
processMarkerData
|
|
|
} from '../../../utils/mapHelpers';
|
|
|
import { getData } from '../../../modules/map/regionData';
|
|
|
-import { fetchSeriesData } from '../../../modules/map/series/queries/use-post-get-series';
|
|
|
+import { fetchSeriesData } from '@api/series';
|
|
|
import MarkerItem from './MarkerItem';
|
|
|
import ClusterItem from './ClusterItem';
|
|
|
import {
|
|
@@ -61,6 +61,9 @@ const AnimatedMarker = Animated.createAnimatedComponent(Marker);
|
|
|
const MapScreen: React.FC<MapScreenProps> = ({ navigation }) => {
|
|
|
const userId = storage.get('uid', StoreType.STRING);
|
|
|
const token = storage.get('token', StoreType.STRING);
|
|
|
+
|
|
|
+ const { mutateAsync } = fetchSeriesData();
|
|
|
+
|
|
|
const visitedTiles = `${MAP_HOST}/tiles_nm/user_visited/${userId}`;
|
|
|
|
|
|
const mapRef = useRef<MapView>(null);
|
|
@@ -182,17 +185,23 @@ const MapScreen: React.FC<MapScreenProps> = ({ navigation }) => {
|
|
|
const regionIds = regionsFound.map(
|
|
|
(region: { properties: { id: any } }) => region.properties.id
|
|
|
);
|
|
|
- const candidatesMarkers = await fetchSeriesData(String(token), JSON.stringify(regionIds));
|
|
|
|
|
|
- if (thisToken !== currentTokenRef.current) return;
|
|
|
+ await mutateAsync(
|
|
|
+ { regions: JSON.stringify(regionIds), token: String(token) },
|
|
|
+ {
|
|
|
+ onSuccess: (data) => {
|
|
|
+ if (thisToken !== currentTokenRef.current) return;
|
|
|
|
|
|
- setSeries(candidatesMarkers.series);
|
|
|
+ setSeries(data.series);
|
|
|
|
|
|
- const markersVisible = filterCandidatesMarkers(candidatesMarkers.items, visibleAreaPolygon);
|
|
|
- const allMarkers = markersVisible.map(processMarkerData);
|
|
|
- const clusteredMarkers = clusterMarkers(allMarkers, currentZoom, setClusters);
|
|
|
+ const markersVisible = filterCandidatesMarkers(data.items, visibleAreaPolygon);
|
|
|
+ const allMarkers = markersVisible.map(processMarkerData);
|
|
|
+ const clusteredMarkers = clusterMarkers(allMarkers, currentZoom, setClusters);
|
|
|
|
|
|
- setMarkers(clusteredMarkers as MarkerData[]);
|
|
|
+ setMarkers(clusteredMarkers as MarkerData[]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ );
|
|
|
};
|
|
|
|
|
|
const renderMarkers = () => {
|
|
@@ -314,10 +323,17 @@ const MapScreen: React.FC<MapScreenProps> = ({ navigation }) => {
|
|
|
mapRef.current?.animateToRegion(region, 1000);
|
|
|
|
|
|
if (tableName === 'regions') {
|
|
|
- const seriesData = await fetchSeriesData(String(token), JSON.stringify([id]));
|
|
|
- setSeries(seriesData.series);
|
|
|
- const allMarkers = seriesData.items.map(processMarkerData);
|
|
|
- setProcessedMarkers(allMarkers);
|
|
|
+ await mutateAsync(
|
|
|
+ { regions: JSON.stringify(id), token: String(token) },
|
|
|
+ {
|
|
|
+ onSuccess: (data) => {
|
|
|
+ setSeries(data.series);
|
|
|
+
|
|
|
+ const allMarkers = data.items.map(processMarkerData);
|
|
|
+ setProcessedMarkers(allMarkers);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ );
|
|
|
} else {
|
|
|
setProcessedMarkers([]);
|
|
|
}
|