On iOS, after pressing a cluster and zooming, pressing a marker shows it and then quickly hides it
Opened this issue · 2 comments
findhumane commented
Reproducible example: https://github.com/findhumane/testmapstouch
git clone https://github.com/findhumane/testmapstouch
cd testmapstouch
npm install
npx 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
bug.webm
Some notes:
- The above demonstration is with Expo SDK47 and
react-native-maps@1.3.2
. The problem also happened on SDK46 andreact-native-maps@0.31.1
. 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-cluster
is not used (i.e. justreact-native-maps
and markers). - This has been reproduced on multiple iPhones, old and new.
Any ideas?
findhumane commented
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.
findhumane commented
Proximate cause and workaround described here: react-native-maps/react-native-maps#4573 (comment)
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];