- Fix type resolution for subpath exports when using
moduleResolution: node
(#2486)
- First version to support Mapbox GL JS' official types and MapLibre GL JS v5.
This version fully separates the code that support each compatible map library:
react-map-gl/mapbox
: for use withmapbox-gl>=3.5.0
react-map-gl/maplibre
: for use withmaplibre-gl>=4
react-map-gl/mapbox-legacy
: for use withmapbox-gl
v1.x and v2.x and@types/mapbox-gl
- As a result, each endpoint now have slightly smaller bundle size and more precise types.
- Maplibre wrapper is expected to have better functionality and performance than v7 by utilizing an upstream API for the React use case.
For a full list of breaking changes, please visit the upgrade guide.
- feat: remove
RTLTextPlugin
default for MapLibre (#2480)
- Migrate to monorepo (#2459)
- Switch to ESM module (#2281)
- Remap event types (#2207)
- Restore fog, light and terrain types on MapProps (#2206)
- Make source prop of Layer optional (#2200)
- Fix maplibre-gl peerDependencies typo (#2197)
- Add ref forwarding to Marker and Popup (#2191)
- Split exports into separate endpoints (#2178)
- Make mapbox-gl an optional dependency (#2175)
- Remove defaultProps and displayName (#2173)
v7 is a complete rewrite of the library. It addresses many long-standing issues in v5 and v6 limited by legacy architecture decisions. The most notable results of this redesign are:
- Performance: minimize the overhead of React, offer the same fast and smooth interaction as the native library
- Lightweight: the ESM build size is reduced from 219k to 57k
- Predictability: Components behave the same as their mapbox counterparts. Props are mapped 1:1 from the native options wherever appropriate. Almost all imperative APIs (
flyTo
,fitBounds
etc.) can now be called directly without breaking the React binding. - Compatibility: first and third-party plugins! Directly use mapbox-gl-draw, mapbox-gl-geocoder, to name a few.
- TypeScript compliant: the code base is now entirely written in TypeScript, and all types can be imported.
Visit the upgrade guide if you are trying to upgrade from v5 and v6.
- Add mapLib API (#1703)
- Support inline styling for all components (#1702)
- Refactor Mapbox class (#1701)
- Improve typing (#1695)
- [v7] Fix popup className update in mapbox v1/maplibre (#1694)
- [v7] Fix double controls in strict mode (#1678)
- [v7] Fix AttributionControl prop typo (#1679)
- [v7] Handle unmount order (#1676)
- [v7] Fix synchronization during transition (#1675)
- [v7] Update MapRef (#1674)
- [v7] Bug fixes (#1673)
- [v7] Fix resize synchronization (#1670)
- [v7] Add fog, light, terrain props (#1669)
- [v7] support global settings with MapProps (#1668)
- [v7] Clean up typings and expose more utility types (#1667)
- Drop flow types support (#1666)
- Update
@types/mapbox-gl
dependency
- [v7] utility hooks (#1663)
- [v7] Add Layer and Source (#1657)
- [v7] Control components (#1656)
- [v7] Marker and Popup (#1655)
- [v7] Map component (#1652)
- Typescript dev setup