All notable changes to this project are documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Two changes alter runtime behavior without changing any type signatures, so your code keeps compiling but may behave differently after upgrading.
onRegionChange and onRegionChangeComplete now fire once per gesture
In 1.0.0 these fired repeatedly while the map was moving, and also fired for programmatic camera updates. Now:
onRegionChangefires once when a user-initiated region change beginsonRegionChangeCompletefires once when the user gesture ends- Programmatic updates (
setCamera,animateCamera,fitToCoordinates) no longer emit either callback
If you relied on a continuous stream of region updates — a live coordinate
readout, or a "search this area" button that re-renders while panning — move that
work to onRegionChangeComplete, which now marks the end of the gesture:
// Before: fired continuously during the gesture
<MapView onRegionChange={(region) => setSearchArea(region)} />
// After: fires once when the user stops moving the map
<MapView onRegionChangeComplete={(region) => setSearchArea(region)} />MapViewRef camera methods now return Promise<void>
setCamera, animateCamera, and fitToCoordinates previously returned void.
Existing call sites still compile, but linters configured with
@typescript-eslint/no-floating-promises will now flag them, and any custom
implementation or test mock of MapViewRef must be updated to match.
// Await the call, or explicitly ignore the promise
await mapRef.current?.animateCamera(camera, 300);- Add native POI press events with provider-specific payloads
(
onPoiPress,PoiPressEvent,ApplePoiPressEvent,GooglePoiPressEvent) (#36) - Add Expo SDK 57 support (#49)
- Rework map region change handling and camera update logic; programmatic updates now skip no-op native calls (#48)
- ios: Remove
main.syncfromHybridMapViewand make camera APIs async, fixing main-thread deadlocks (#45) - ios: Fix threading issues in map view ownership (#43)
- android: Align SDK versions with the nitro-modules prefab (#41)
- Fix failure on first-time build (#39)
Initial public release: high-performance maps for React Native built on Nitro Modules and the New Architecture, with Apple Maps and Google Maps providers on iOS and Android.