From c5e289dc4111fd23fbab4b4695d405b8fccea349 Mon Sep 17 00:00:00 2001 From: Iván Ávalos Date: Fri, 4 Feb 2022 02:31:03 -0600 Subject: Only refresh map markers when some of them changes --- iosApp/iosApp/Map/MapView.swift | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'iosApp') diff --git a/iosApp/iosApp/Map/MapView.swift b/iosApp/iosApp/Map/MapView.swift index 989f17a..2c86c3b 100644 --- a/iosApp/iosApp/Map/MapView.swift +++ b/iosApp/iosApp/Map/MapView.swift @@ -28,8 +28,11 @@ struct MapView: UIViewControllerRepresentable { @Binding var selected: Marker? var markerCallback: MarkerCallback? + var shouldCenter = true + class Coordinator { var shouldCenter: Bool = true + var oldMarkers: [Marker] = [] } func makeCoordinator() -> Coordinator { @@ -48,10 +51,13 @@ struct MapView: UIViewControllerRepresentable { uiViewController.setMapLayer(layer) // MARK: - Set markers - uiViewController.display(markers: markers, - isReport: false, - center: context.coordinator.shouldCenter) + if context.coordinator.oldMarkers != markers { + uiViewController.display(markers: markers, + isReport: false, + center: context.coordinator.shouldCenter) + } context.coordinator.shouldCenter = false + context.coordinator.oldMarkers = markers // MARK: - Center selected marker if let selected = selected { -- cgit v1.2.3