File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -793,27 +793,32 @@ export default class Mapbox {
793793
794794 if ( shouldTrackHoveredFeatures ) {
795795 const eventType = e . type ;
796- const wasHovering = this . _hoveredFeatures ?. length > 0 ;
796+ const hoveredFeaturesLen = this . _hoveredFeatures ?. length || 0 ;
797797 let features ;
798798 if ( eventType === 'mousemove' ) {
799799 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+ ) ;
803808 } catch {
804809 features = [ ] ;
805810 }
806811 } else {
807812 features = [ ] ;
808813 }
809- const isHovering = features . length > 0 ;
814+ const hoveringFeatureLen = features . length ;
810815
811- if ( ! isHovering && wasHovering ) {
816+ if ( hoveringFeatureLen < hoveredFeaturesLen ) {
812817 e . type = 'mouseleave' ;
813818 this . _onPointerEvent ( e ) ;
814819 }
815820 this . _hoveredFeatures = features ;
816- if ( isHovering && ! wasHovering ) {
821+ if ( hoveringFeatureLen > hoveredFeaturesLen ) {
817822 e . type = 'mouseenter' ;
818823 this . _onPointerEvent ( e ) ;
819824 }
You can’t perform that action at this time.
0 commit comments