1- import React , { useEffect , useState } from 'react'
1+ import React , { useEffect , useState , useRef } from 'react'
22import PropTypes from 'prop-types'
33import classNames from 'classnames'
44import { isEmpty , isNil } from 'lodash'
@@ -12,6 +12,9 @@ const Schemas = ({ schemas, activeItem, setActiveItem, getTooltip, onDoubleClick
1212 const [ visibleTables , setVisibleTables ] = useState ( [ ] )
1313 const [ visibleColumns , setVisibleColumns ] = useState ( [ ] )
1414
15+ const refListTables = useRef ( null )
16+ const refListColumns = useRef ( null )
17+
1518 const initBrowser = ( ) => {
1619 if ( ! isEmpty ( schemas ) ) {
1720 const schema = schemas [ 0 ]
@@ -44,7 +47,13 @@ const Schemas = ({ schemas, activeItem, setActiveItem, getTooltip, onDoubleClick
4447 }
4548
4649 setOpenTable ( table )
50+ if ( refListTables . current ) {
51+ refListTables . current . scrollTop = 0
52+ }
4753 setVisibleColumns ( ( isNil ( table ) || isNil ( table . columns ) ) ? [ ] : table . columns )
54+ if ( refListColumns . current ) {
55+ refListColumns . current . scrollTop = 0
56+ }
4857
4958 } else if ( activeItem . type == 'table' ) {
5059 // search for the table
@@ -56,6 +65,9 @@ const Schemas = ({ schemas, activeItem, setActiveItem, getTooltip, onDoubleClick
5665 if ( table ) {
5766 setOpenTable ( table )
5867 setVisibleColumns ( table . columns )
68+ if ( refListColumns . current ) {
69+ refListColumns . current . scrollTop = 0
70+ }
5971 }
6072
6173 }
@@ -111,7 +123,7 @@ const Schemas = ({ schemas, activeItem, setActiveItem, getTooltip, onDoubleClick
111123 < div className = "dq-browser-title" >
112124 { gettext ( 'Tables' ) }
113125 </ div >
114- < ul className = "dq-browser-list" >
126+ < ul className = "dq-browser-list" ref = { refListTables } >
115127 {
116128 visibleTables . map ( ( table , index ) => (
117129 < li key = { index } >
@@ -138,7 +150,7 @@ const Schemas = ({ schemas, activeItem, setActiveItem, getTooltip, onDoubleClick
138150 < div className = "dq-browser-title" >
139151 { gettext ( 'Columns' ) }
140152 </ div >
141- < ul className = "dq-browser-list" >
153+ < ul className = "dq-browser-list" ref = { refListColumns } >
142154 {
143155 visibleColumns . map ( ( column , index ) => (
144156 < li key = { index } >
0 commit comments