Skip to content

Commit 6184fd4

Browse files
committed
fix: allow users to prevent columns from collapsing completely
in some cases columns might collapse to 0 pixels when using auto min width this auto min width is implicit in cases like 1fr [=== minmax(auto, 1fr) ] This change enables the min width to be always set, so users can configure it
1 parent eb5b0c9 commit 6184fd4

3 files changed

Lines changed: 21 additions & 15 deletions

File tree

packages/pluggableWidgets/datagrid-web/src/Datagrid.editorConfig.ts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,9 +54,6 @@ export function getProperties(values: DatagridPreviewProps, defaultProperties: P
5454
if (column.width !== "manual") {
5555
hidePropertyIn(defaultProperties, values, "columns", index, "size");
5656
}
57-
if (column.width !== "autoFit") {
58-
hidePropertyIn(defaultProperties, values, "columns", index, "minWidth");
59-
}
6057
if (column.minWidth !== "manual") {
6158
hidePropertyIn(defaultProperties, values, "columns", index, "minWidthLimit");
6259
}

packages/pluggableWidgets/datagrid-web/src/components/__tests__/__snapshots__/Grid.spec.tsx.snap

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ exports[`Grid renders without crashing 1`] = `
55
<div
66
class="widget-datagrid-grid table"
77
role="grid"
8-
style="--widgets-grid-template-columns: 1fr 1fr 54px;"
8+
style="--widgets-grid-template-columns: minmax(auto, 1fr) minmax(auto, 1fr) 54px;"
99
>
1010
Test
1111
</div>
@@ -17,7 +17,7 @@ exports[`Grid renders without selector column 1`] = `
1717
<div
1818
class="widget-datagrid-grid table"
1919
role="grid"
20-
style="--widgets-grid-template-columns: 1fr 1fr;"
20+
style="--widgets-grid-template-columns: minmax(auto, 1fr) minmax(auto, 1fr);"
2121
>
2222
Test
2323
</div>

packages/pluggableWidgets/datagrid-web/src/helpers/state/column/BaseColumnInfo.ts

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -56,21 +56,30 @@ export class BaseColumnInfo {
5656
this.allowEventPropagation = props.allowEventPropagation;
5757
}
5858

59+
private get minColumnWidth(): "auto" | "min-content" | `${number}px` {
60+
switch (this.minWidth) {
61+
case "auto": {
62+
return "auto";
63+
}
64+
case "minContent": {
65+
return "min-content";
66+
}
67+
case "manual": {
68+
return `${this.minWidthLimit}px`;
69+
}
70+
}
71+
}
72+
5973
get columnWidth(): string {
6074
switch (this.width) {
75+
case "autoFill": {
76+
return `minmax(${this.minColumnWidth}, 1fr)`;
77+
}
6178
case "autoFit": {
62-
const min =
63-
this.minWidth === "manual"
64-
? `${this.minWidthLimit}px`
65-
: this.minWidth === "minContent"
66-
? "min-content"
67-
: "auto";
68-
return `minmax(${min}, auto)`;
79+
return `minmax(${this.minColumnWidth}, auto)`;
6980
}
7081
case "manual":
71-
return `${this.weight}fr`;
72-
default:
73-
return "1fr";
82+
return `minmax(${this.minColumnWidth}, ${this.weight}fr)`;
7483
}
7584
}
7685
}

0 commit comments

Comments
 (0)