Skip to content

Commit 035a078

Browse files
committed
Make the lists in the schema browser always start at the top
1 parent e8b3c9c commit 035a078

File tree

1 file changed

+15
-3
lines changed

1 file changed

+15
-3
lines changed

daiquiri/metadata/assets/js/components/Schemas.js

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import React, { useEffect, useState } from 'react'
1+
import React, { useEffect, useState, useRef } from 'react'
22
import PropTypes from 'prop-types'
33
import classNames from 'classnames'
44
import { 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

Comments
 (0)