File tree 1 file changed +12
-7
lines changed
1 file changed +12
-7
lines changed Original file line number Diff line number Diff line change @@ -793,27 +793,32 @@ export default class Mapbox {
793
793
794
794
if ( shouldTrackHoveredFeatures ) {
795
795
const eventType = e . type ;
796
- const wasHovering = this . _hoveredFeatures ?. length > 0 ;
796
+ const hoveredFeaturesLen = this . _hoveredFeatures ?. length || 0
797
797
let features ;
798
798
if ( eventType === 'mousemove' ) {
799
799
try {
800
- features = this . _map . queryRenderedFeatures ( e . point , {
801
- layers : props . interactiveLayerIds
802
- } ) ;
800
+ features = this . _map
801
+ . queryRenderedFeatures ( e . point , {
802
+ layers : props . interactiveLayerIds
803
+ } )
804
+ . filter (
805
+ ( feature , index , array ) =>
806
+ array . findIndex ( f => f . layer . id === feature . layer . id ) === index
807
+ ) ;
803
808
} catch {
804
809
features = [ ] ;
805
810
}
806
811
} else {
807
812
features = [ ] ;
808
813
}
809
- const isHovering = features . length > 0 ;
814
+ const hoveringFeatureLen = features . length
810
815
811
- if ( ! isHovering && wasHovering ) {
816
+ if ( hoveringFeatureLen < hoveredFeaturesLen ) {
812
817
e . type = 'mouseleave' ;
813
818
this . _onPointerEvent ( e ) ;
814
819
}
815
820
this . _hoveredFeatures = features ;
816
- if ( isHovering && ! wasHovering ) {
821
+ if ( hoveringFeatureLen > hoveredFeaturesLen ) {
817
822
e . type = 'mouseenter' ;
818
823
this . _onPointerEvent ( e ) ;
819
824
}
You can’t perform that action at this time.
0 commit comments