@@ -50,6 +50,7 @@ interface GeoPointsMapProps {
5050 selectedCountryCode ?: string | null ;
5151 onCountrySelect ?: ( countryCode : string | null ) => void ;
5252 collapseOverlappingPointColors ?: boolean ;
53+ pointCrossfadeEnabled ?: boolean ;
5354}
5455
5556interface ClusteredGeoPoint {
@@ -515,6 +516,7 @@ export function GeoPointsMap({
515516 selectedCountryCode,
516517 onCountrySelect,
517518 collapseOverlappingPointColors = false ,
519+ pointCrossfadeEnabled = true ,
518520} : GeoPointsMapProps ) {
519521 const { resolvedTheme } = useTheme ( ) ;
520522 const isMobile = useIsMobile ( ) ;
@@ -649,6 +651,15 @@ export function GeoPointsMap({
649651 const mapRef = useRef < MapRef | null > ( null ) ;
650652
651653 useEffect ( ( ) => {
654+ if ( ! pointCrossfadeEnabled ) {
655+ hasClusterCrossfadeInitialized . current = true ;
656+ incomingClustersRef . current = clusteredPoints ;
657+ setIncomingClusters ( clusteredPoints ) ;
658+ setOutgoingClusters ( [ ] ) ;
659+ setClusterFadeProgress ( 1 ) ;
660+ return ;
661+ }
662+
652663 if ( ! hasClusterCrossfadeInitialized . current ) {
653664 hasClusterCrossfadeInitialized . current = true ;
654665 incomingClustersRef . current = clusteredPoints ;
@@ -679,7 +690,7 @@ export function GeoPointsMap({
679690 return ( ) => {
680691 controls . stop ( ) ;
681692 } ;
682- } , [ clusteredPoints ] ) ;
693+ } , [ clusteredPoints , pointCrossfadeEnabled ] ) ;
683694
684695 const incomingAlpha = Math . round (
685696 MAP_POINT_ALPHA_VISIBLE * clusterFadeProgress ,
0 commit comments