v5.0.0
Refactoring and simplification of codebase and exposed public APIs.
Changes
- New props (see section below).
- Flattened
optionsprop (improves and simplifies component rendering lifecycle with hooks). - Improved
Globeinstance support. - Bugfixes and performance improvements.
- Fixed various GH issues.
- Memory leaks with marker callbacks.
- Simplified and decoupled internal implementation.
- Detypescriptify source code to improve future OSS development.
- Updated dev tools and build pipeline (
microbundle,xo). - Updated docs and examples.
Breaking Changes
Named Exports
Only the Globe class, ReactGlobe component, defaultCallbacks, defaultInitialCoordinates, defaultOptions, and tween util are now exported to limit the exposed public API.
Types
Various exported types have changed. The new types form a smaller and simplified set.
Props
Various props are replaced, updated (interface updates), removed, or unchanged. The following table tracks the status of old vs new props.
| Status | Old | New |
|---|---|---|
| updated | animations |
animations |
| updated | onDefocus |
onDefocus |
| replaced | cameraOptions |
options |
| replaced | focusOptions |
options |
| replaced | globeOptions |
options |
| replaced | lightOptions |
options |
| replaced | markerOptions |
options |
| replaced | size |
height, width |
| unchanged | focus |
focus |
| unchanged | initialCoordinates |
initialCoordinates |
| unchanged | markers |
markers |
| unchanged | onClickMarker |
onClickMarker |
| unchanged | onMouseOutMarker |
onMouseOutMarker |
| unchanged | onMouseOverMarker |
onMouseOverMarker |
| renamed | onGetGlobeInstance |
onGetGlobe |
| renamed | onTextureLoaded |
onGlobeTextureLoaded |
| added | globeBackgroundTexture |
|
| added | globeCloudsTexture |
|
| added | globeTexture |
|
| added | onGlobeBackgroundTextureLoaded |
|
| added | onGlobeCloudsTextureLoaded |
Options
react-globe provides useful and convenient configurations to customize the globe. These configurations still exist, but are managed in a flat options object. This allows easier code/documentation management of globe configuration.
Most options are renamed in an organized way that allows easy refactoring.
| Status | Old | New |
|---|---|---|
| removed | globeOptions.enableBackground |
|
| removed | globeOptions.enableClouds |
|
| removed | markerOptions.activeScale |
|
| renamed | cameraOptions.autoRotateSpeed |
options.cameraAutoRotateSpeed |
| renamed | cameraOptions.distanceRadiusScale |
options.cameraDistanceRadiusScale |
| renamed | cameraOptions.enableAutoRotate |
options.enableCameraAutoRotate |
| renamed | cameraOptions.enableRotate |
options.enableCameraRotate |
| renamed | cameraOptions.enableZoom |
options.enableCameraZoom |
| renamed | cameraOptions.maxDistanceRadiusScale |
options.cameraMaxDistanceRadiusScale |
| renamed | cameraOptions.maxPolarAngle |
options.cameraMaxPolarAngle |
| renamed | cameraOptions.minPolarAngle |
options.cameraMinPolarAngle |
| renamed | cameraOptions.rotateSpeed |
options.cameraRotateSpeed |
| renamed | cameraOptions.zoomSpeed |
options.cameraZoomSpeed |
| renamed | focusOptions.animationDuration |
options.focusAnimationDuration |
| renamed | focusOptions.distanceRadiusScale |
options.focusDistanceRadiusScale |
| renamed | focusOptions.easingFunction |
options.focusEasingFunction |
| renamed | focusOptions.enableDefocus |
options.enableDefocus |
| renamed | globeOptions.backgroundTexture |
options.globeBackgroundTexture |
| renamed | globeOptions.cloudsOpacity |
options.globeCloudsOpacity |
| renamed | globeOptions.cloudsTexture |
options.globeCloudsTexture |
| renamed | globeOptions.enableGlow |
options.enableGlobeGlow |
| renamed | globeOptions.glowCoefficient |
options.globeGlowCoefficient |
| renamed | globeOptions.glowColor |
options.globeGlowColor |
| renamed | globeOptions.glowPower |
options.globeGlowPower |
| renamed | globeOptions.glowRadiusScale |
options.globeGlowRadiusScale |
| renamed | globeOptions.texture |
options.globeTexture |
| renamed | lightOptions.ambientLightColor |
options.ambientLightColor |
| renamed | lightOptions.ambientLightIntensity |
options.ambientLightIntensity |
| renamed | lightOptions.pointLightColor |
options.pointLightColor |
| renamed | lightOptions.pointLightIntensity |
options.pointLightIntensity |
| renamed | lightOptions.pointLightPositionRadiusScales |
options.pointLightPositionRadiusScales |
| renamed | markerOptions.enableGlow |
options.enableMarkerGlow |
| renamed | markerOptions.enableTooltip |
options.enableMarkerTooltip |
| renamed | markerOptions.enterAnimationDuration |
options.markerEnterAnimationDuration |
| renamed | markerOptions.enterEasingFunction |
options.markerEnterEasingFunction |
| renamed | markerOptions.exitAnimationDuration |
options.markerExitAnimationDuration |
| renamed | markerOptions.exitEasingFunction |
options.markerExitEasingFunction |
| renamed | markerOptions.getTooltipContent |
options.markerTooltipRenderer |
| renamed | markerOptions.glowCoefficient |
options.markerGlowCoefficient |
| renamed | markerOptions.glowPower |
options.markerGlowPower |
| renamed | markerOptions.glowRadiusScale |
options.markerGlowRadiusScale |
| renamed | markerOptions.offsetRadiusScale |
options.markerOffsetRadiusScale |
| renamed | markerOptions.radiusScaleRange |
options.markerRadiusScaleRange |
| renamed | markerOptions.renderer |
options.markerRenderer |
| renamed | markerOptions.type |
options.markerType |
Globe instance
As mentioned in the v4.0.0 docs, the Globe instance APIs are unstable and not formally maintained. The Globe class instance is now managed through a new set of class methods, and the old methods are no longer compatible.
v5.0.0 introduces more formal support for the Globe instance.
CSS
Tooltip (tippy) CSS is no longer bundled with the project. You can optionally import it with:
import 'tippy.js/dist/tippy.css';
import 'tippy.js/animations/scale.css';