@@ -2,6 +2,7 @@ import _ from 'lodash';
22import React , { Component , useRef , useState , useEffect , useContext } from 'react' ;
33import { useSelector } from 'react-redux' ;
44import ConfigContext from '../context' ;
5+ import { isUndefined } from '../utils' ;
56
67export let scrollerMap = { } ;
78
@@ -10,10 +11,14 @@ const withScrollSpy = WrappedComponent => (props) => {
1011 const id = _ . uniqueId ( name ) ;
1112 const ref = useRef ( null ) ;
1213 const [ scrollData , setScrollData ] = useState ( { top : 0 , pointerEvents : 'none' } ) ;
13- const { getData, minWidth, config : { height } } = useContext ( ConfigContext ) ;
14+ const { getData, minWidth, config : { name : tableName , height } } = useContext ( ConfigContext ) ;
1415
1516 const handleScroll = ( event ) => {
16- _ . map ( scrollerMap , ( ref , key , index ) => (
17+ if ( isUndefined ( scrollerMap [ tableName ] ) ) {
18+ return ;
19+ }
20+
21+ _ . map ( scrollerMap [ tableName ] , ( ref , key , index ) => (
1722 ref . current . scrollLeft = event . target . scrollLeft
1823 ) ) ;
1924
@@ -27,14 +32,18 @@ const withScrollSpy = WrappedComponent => (props) => {
2732 ref . current . removeEventListener ( 'scroll' , handleScroll , true ) ;
2833 ref . current . addEventListener ( 'scroll' , handleScroll , true ) ;
2934 } else {
30- scrollerMap [ id ] = ref ;
35+ if ( isUndefined ( scrollerMap [ tableName ] ) ) {
36+ scrollerMap [ tableName ] = { } ;
37+ }
38+
39+ scrollerMap [ tableName ] [ id ] = ref ;
3140 }
3241
3342 return ( ) => {
3443 if ( name === 'Body' ) {
3544 ref . current . removeEventListener ( 'scroll' , handleScroll , true ) ;
3645 } else {
37- delete scrollerMap [ id ] ;
46+ delete scrollerMap [ tableName ] [ id ] ;
3847 }
3948 } ;
4049 } , [ handleScroll ] ) ;
0 commit comments