react-native-maps-super-cluster
react-native-maps-super-cluster copied to clipboard
On iOS, after pressing a cluster and zooming, pressing a marker shows it and then quickly hides it
trafficstars
Reproducible example: https://github.com/findhumane/testmapstouch
git clone https://github.com/findhumane/testmapstouchcd testmapstouchnpm installnpx expo start --tunnel- Scan the QR code in Expo Go
- Tap on the "3" cluster
- Move the map over a bit to the left
- Tap on the left marker
- The callout shows very quickly and then disappears (see demo video below)
- However, then, move down and to the right and tap that marker and the callout is persistent, as expected
Some notes:
- The above demonstration is with Expo SDK47 and
[email protected]. The problem also happened on SDK46 and[email protected]. I was waiting to report this until I could upgrade to SDK47 and the newerreact-native-maps. - This issue does not happen if
react-native-maps-super-clusteris not used (i.e. justreact-native-mapsand markers). - This has been reproduced on multiple iPhones, old and new.
Any ideas?
I noticed that the develop branch is ahead of master, and I had been forking off of master (to fix some issues integrating with newer versions of Expo). I applied the diff between develop and master and the issue is the same.
Proximate cause and workaround described here: https://github.com/react-native-maps/react-native-maps/issues/4573#issuecomment-1369146465
diff --git a/ios/AirMaps/AIRMapMarker.m b/ios/AirMaps/AIRMapMarker.m
index 65098aa..0d66061 100644
--- a/ios/AirMaps/AIRMapMarker.m
+++ b/ios/AirMaps/AIRMapMarker.m
@@ -267,7 +267,7 @@ NSInteger const AIR_CALLOUT_OPEN_ZINDEX_BASELINE = 999;
_calloutIsOpen = NO;
[self setZIndex:_zIndexBeforeOpen];
// hide the callout view
- [self.map.calloutView dismissCalloutAnimated:YES];
+ [self.map.calloutView dismissCalloutAnimated:NO];
[self setSelected:NO animated:NO];
[self.map deselectAnnotation:self animated:NO];