Skip to content

Commit 004ac6c

Browse files
authored
feat: add column count to table tooltip (#1382)
- Adds the "Number of Columns" value to the tooltip. - Also converted to css-grid so things would line up nicely
1 parent 9a7b910 commit 004ac6c

4 files changed

Lines changed: 51 additions & 35 deletions

File tree

packages/dashboard-core-plugins/src/panels/IrisGridPanel.scss

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,4 @@ $panel-message-overlay-top: 30px;
3030

3131
.grid-cursor-linker {
3232
cursor: crosshair;
33-
}
34-
35-
.tab-tooltip-container {
36-
.column-statistics-grid {
37-
border-top: 1px solid $gray-500;
38-
margin: 5px -15px 0;
39-
font-weight: 300;
40-
}
41-
}
33+
}

packages/dashboard-core-plugins/src/panels/IrisGridPanelTooltip.tsx

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,17 +18,23 @@ function IrisGridPanelTooltip(props: IrisGridPanelTooltipProps): ReactElement {
1818
const rowCount = (model?.rowCount ?? 0) - (model?.pendingRowCount ?? 0);
1919
const formattedRowCount = model?.displayString(rowCount, 'long');
2020

21+
const columnCount = model?.columnCount ?? 0;
22+
const formattedcolumnCount = model?.displayString(columnCount, 'long');
23+
2124
return (
2225
<WidgetPanelTooltip
2326
widgetType="Table"
2427
widgetName={widgetName}
2528
glContainer={glContainer}
2629
description={description}
2730
>
28-
<div className="column-statistics-grid">
29-
<span className="column-statistic-operation">Number of Rows</span>
30-
<span className="column-statistic-value">{formattedRowCount}</span>
31-
</div>
31+
<hr className="tab-tooltip-divider" />
32+
<span>Number of Columns</span>
33+
<span className="tab-tooltip-statistic-value">
34+
{formattedcolumnCount}
35+
</span>
36+
<span>Number of Rows</span>
37+
<span className="tab-tooltip-statistic-value">{formattedRowCount}</span>
3238
</WidgetPanelTooltip>
3339
);
3440
}
Lines changed: 33 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,47 @@
1+
@import '@deephaven/components/scss/custom.scss';
2+
13
$tooltip-container-width: 300px;
2-
$tooltip-title-width: 110px;
34

4-
.tab-tooltip-container {
5-
padding: 5px 15px;
5+
.tab-tooltip-grid-container {
6+
display: grid;
7+
grid-template-columns: auto 1fr;
8+
align-items: first baseline;
69
max-width: $tooltip-container-width;
710
text-align: left;
811

912
.tab-tooltip-title {
10-
min-width: $tooltip-title-width;
13+
font-weight: 700;
14+
}
15+
16+
.tab-tooltip-name-wrapper {
17+
display: flex;
18+
flex-wrap: nowrap;
19+
align-items: first baseline;
20+
gap: $spacer-1;
1121
}
1222

1323
.tab-tooltip-name {
14-
max-width: $tooltip-container-width - $tooltip-title-width;
1524
word-break: break-word;
16-
padding-left: 5px;
1725
}
1826

19-
.tab-tooltip-copy {
20-
margin-left: 2px;
21-
margin-top: -4px;
27+
hr.tab-tooltip-divider {
28+
grid-column: span 2;
29+
width: 100%;
30+
margin: $spacer-1 0;
31+
border-color: $gray-500;
32+
}
33+
34+
.tab-tooltip-description {
35+
grid-column: span 2;
36+
color: $text-muted;
37+
padding-bottom: $spacer-1;
38+
}
39+
40+
.tab-tooltip-statistic-value {
41+
font-feature-settings: 'tnum';
42+
text-align: right;
43+
text-overflow: ellipsis;
44+
overflow: hidden;
45+
white-space: nowrap;
2246
}
2347
}

packages/dashboard-core-plugins/src/panels/WidgetPanelTooltip.tsx

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,9 @@ function WidgetPanelTooltip(props: WidgetPanelTooltipProps): ReactElement {
1818
const panelTitle = LayoutUtils.getTitleFromContainer(glContainer);
1919

2020
return (
21-
<div className="tab-tooltip-container">
22-
<div className="row flex-nowrap align-items-start">
23-
<span className="tab-tooltip-title">
24-
<b>{widgetType} Name </b>
25-
</span>
21+
<div className="tab-tooltip-grid-container">
22+
<span className="tab-tooltip-title">{widgetType} Name</span>
23+
<div className="tab-tooltip-name-wrapper">
2624
<span className="tab-tooltip-name">{widgetName}</span>
2725
<CopyButton
2826
className="tab-tooltip-copy"
@@ -31,17 +29,13 @@ function WidgetPanelTooltip(props: WidgetPanelTooltipProps): ReactElement {
3129
/>
3230
</div>
3331
{widgetName !== panelTitle && (
34-
<div className="row">
35-
<span className="tab-tooltip-title">
36-
<b>Display Name</b>
37-
</span>
32+
<>
33+
<span className="tab-tooltip-title">Display Name</span>
3834
<span className="tab-tooltip-name">{panelTitle}</span>
39-
</div>
35+
</>
4036
)}
4137
{description && (
42-
<div className="row">
43-
<span className="tab-tooltip-description">{description}</span>
44-
</div>
38+
<div className="tab-tooltip-description">{description}</div>
4539
)}
4640
{children}
4741
</div>

0 commit comments

Comments
 (0)