Skip to content

Commit 1020ad3

Browse files
committed
enhance DataGrid with rowHoverStyle and hideSelectAll props for improved styling and functionality
1 parent be2ade3 commit 1020ad3

File tree

2 files changed

+25
-0
lines changed

2 files changed

+25
-0
lines changed

.changeset/big-kangaroos-enjoy.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@ensembleui/react-runtime": patch
3+
---
4+
5+
enhance DataGrid with rowHoverStyle and hideSelectAll props for improved styling and functionality

packages/runtime/src/widgets/DataGrid/DataGrid.tsx

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ import type {
4040
EnsembleWidgetStyles,
4141
HasItemTemplate,
4242
} from "../../shared/types";
43+
import { getComponentStyles } from "../../shared/styles";
4344
import { useEnsembleAction } from "../../runtime/hooks/useEnsembleAction";
4445
import { EnsembleRuntime } from "../../runtime";
4546
import { DataCell } from "./DataCell";
@@ -84,6 +85,7 @@ export interface DataGridRowTemplate {
8485
onTap?: EnsembleAction;
8586
children?: EnsembleWidget[];
8687
styles?: EnsembleWidgetStyles;
88+
rowHoverStyle?: EnsembleWidgetStyles;
8789
} & HasItemTemplate;
8890
}
8991

@@ -115,6 +117,7 @@ export type GridProps = {
115117
totalRows?: number;
116118
curPage?: number;
117119
virtual?: boolean;
120+
hideSelectAll?: boolean;
118121
} & EnsembleWidgetProps<DataGridStyles>;
119122

120123
function djb2Hash(str: string): number {
@@ -364,6 +367,7 @@ export const DataGrid: React.FC<GridProps> = (props) => {
364367
pageSize,
365368
curPage,
366369
widgetName,
370+
rowHoverStyle: itemTemplate.template.properties.rowHoverStyle,
367371
},
368372
props.id,
369373
{
@@ -375,6 +379,7 @@ export const DataGrid: React.FC<GridProps> = (props) => {
375379
},
376380
);
377381
const headerStyle = values?.styles?.headerStyle;
382+
const rowHoverStyle = values?.rowHoverStyle;
378383

379384
useEffect(() => {
380385
setPageSize(values?.pageSize || 10);
@@ -559,6 +564,7 @@ export const DataGrid: React.FC<GridProps> = (props) => {
559564
},
560565
defaultSelectedRowKeys: values?.defaultSelectedRowKeys,
561566
selectedRowKeys: rowsKey.length ? rowsKey : undefined,
567+
hideSelectAll: values?.hideSelectAll,
562568
}
563569
: undefined
564570
}
@@ -702,6 +708,20 @@ export const DataGrid: React.FC<GridProps> = (props) => {
702708
!headerStyle?.borderBottom ? "border-bottom: none !important" : ""
703709
}
704710
}
711+
712+
${
713+
rowHoverStyle
714+
? `#${resolvedWidgetId} .ant-table-tbody > tr > td {
715+
transition: all 0.2s ease-in-out;
716+
}
717+
#${resolvedWidgetId} .ant-table-tbody > tr:hover > td {
718+
${getComponentStyles("", rowHoverStyle, true, true)}
719+
}
720+
#${resolvedWidgetId} .ant-table-tbody > tr.ant-table-row:hover > td {
721+
${getComponentStyles("", rowHoverStyle, true, true)}
722+
}`
723+
: ""
724+
}
705725
`}
706726
</style>
707727
</div>

0 commit comments

Comments
 (0)