Skip to content

Commit 9d31c96

Browse files
authored
fix: wraps page elements in a flexbox to give SimpleTable correct height (#5257)
1 parent 6069238 commit 9d31c96

File tree

3 files changed

+42
-21
lines changed

3 files changed

+42
-21
lines changed

src/dataExplorer/components/FluxQueryBuilder.scss

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
@import '@influxdata/clockface/dist/variables.scss';
22

3+
.flux-query-builder--container {
4+
height: 100%;
5+
}
6+
37
.new-data-explorer-rightside {
48
.cf-draggable-resizer--handle > .cf-draggable-resizer--handle-pill1,
59
.cf-draggable-resizer--handle > .cf-draggable-resizer--handle-pill2,

src/dataExplorer/components/FluxQueryBuilder.tsx

Lines changed: 34 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,13 @@ import {RemoteDataState} from 'src/types'
44
// Components
55
import {
66
DraggableResizer,
7+
FlexBox,
8+
FlexDirection,
79
Orientation,
810
Button,
911
IconFont,
12+
AlignItems,
13+
JustifyContent,
1014
} from '@influxdata/clockface'
1115
import {QueryProvider, QueryContext} from 'src/shared/contexts/query'
1216
import {EditorProvider} from 'src/shared/contexts/editor'
@@ -44,27 +48,38 @@ const FluxQueryBuilder: FC = () => {
4448
return (
4549
<EditorProvider>
4650
<SidebarProvider>
47-
<div className="flux-query-builder--menu">
48-
<Button onClick={clear} text="New Script" icon={IconFont.Plus_New} />
49-
</div>
50-
<DraggableResizer
51-
handleOrientation={Orientation.Vertical}
52-
handlePositions={vertical}
53-
onChangePositions={setVertical}
51+
<FlexBox
52+
className="flux-query-builder--container"
53+
direction={FlexDirection.Column}
54+
justifyContent={JustifyContent.SpaceBetween}
55+
alignItems={AlignItems.Stretch}
5456
>
55-
<DraggableResizer.Panel>
56-
<Schema />
57-
</DraggableResizer.Panel>
58-
<DraggableResizer.Panel
59-
testID="flux-query-builder-middle-panel"
60-
className="new-data-explorer-rightside"
57+
<div className="flux-query-builder--menu">
58+
<Button
59+
onClick={clear}
60+
text="New Script"
61+
icon={IconFont.Plus_New}
62+
/>
63+
</div>
64+
<DraggableResizer
65+
handleOrientation={Orientation.Vertical}
66+
handlePositions={vertical}
67+
onChangePositions={setVertical}
6168
>
62-
<ResultsPane />
63-
</DraggableResizer.Panel>
64-
<DraggableResizer.Panel>
65-
<Sidebar />
66-
</DraggableResizer.Panel>
67-
</DraggableResizer>
69+
<DraggableResizer.Panel>
70+
<Schema />
71+
</DraggableResizer.Panel>
72+
<DraggableResizer.Panel
73+
testID="flux-query-builder-middle-panel"
74+
className="new-data-explorer-rightside"
75+
>
76+
<ResultsPane />
77+
</DraggableResizer.Panel>
78+
<DraggableResizer.Panel>
79+
<Sidebar />
80+
</DraggableResizer.Panel>
81+
</DraggableResizer>
82+
</FlexBox>
6883
</SidebarProvider>
6984
</EditorProvider>
7085
)

src/visualization/types/SimpleTable/PagedTable.tsx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,8 @@ const measurePage = (
4141
let lastSignature
4242
let signature
4343

44+
const lastVisibleRowMinimumHeight = 0.2 * rowHeight
45+
4446
while (rowIdx < result.table.length) {
4547
if (result.table.columns?.table?.data?.[rowIdx] !== currentTable) {
4648
signature = Object.values(result.table.columns)
@@ -73,7 +75,7 @@ const measurePage = (
7375

7476
runningHeight += rowHeight
7577

76-
if (runningHeight + 0.25 * rowHeight >= height) {
78+
if (runningHeight + lastVisibleRowMinimumHeight >= height) {
7779
break
7880
}
7981

@@ -253,7 +255,7 @@ const PagedTable: FC<Props> = ({result, properties}) => {
253255
useEffect(() => {
254256
if (rowHeight === 0 && pagedTableBodyRef?.current) {
255257
const calculatedRowHeight =
256-
pagedTableBodyRef.current?.children?.[0].clientHeight ?? 0
258+
pagedTableBodyRef.current.children?.[0]?.clientHeight ?? 0
257259

258260
if (calculatedRowHeight !== rowHeight) {
259261
setRowHeight(calculatedRowHeight)

0 commit comments

Comments
 (0)