Skip to content

Commit 70fe0f4

Browse files
LongHaoozengguhao.zgh
andauthored
fix: antd #33453 fix the table tree hover error (#729)
Co-authored-by: zengguhao.zgh <[email protected]>
1 parent d8583d8 commit 70fe0f4

File tree

4 files changed

+42
-3
lines changed

4 files changed

+42
-3
lines changed

src/Body/BodyRow.tsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import ExpandedRow from './ExpandedRow';
1616
export interface BodyRowProps<RecordType> {
1717
record: RecordType;
1818
index: number;
19+
renderIndex: number;
1920
className?: string;
2021
style?: React.CSSProperties;
2122
recordKey: Key;
@@ -38,6 +39,7 @@ function BodyRow<RecordType extends { children?: readonly RecordType[] }>(
3839
style,
3940
record,
4041
index,
42+
renderIndex,
4143
rowKey,
4244
rowExpandable,
4345
expandedKeys,
@@ -165,6 +167,7 @@ function BodyRow<RecordType extends { children?: readonly RecordType[] }>(
165167
key={key}
166168
record={record}
167169
index={index}
170+
renderIndex={renderIndex}
168171
dataIndex={dataIndex}
169172
render={render}
170173
shouldCellUpdate={column.shouldCellUpdate}

src/Body/index.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,8 @@ function Body<RecordType>({
7171
rowKey={key}
7272
record={record}
7373
recordKey={key}
74-
index={renderIndex}
74+
index={idx}
75+
renderIndex={renderIndex}
7576
rowComponent={trComponent}
7677
cellComponent={tdComponent}
7778
expandedKeys={expandedKeys}

src/Cell/index.tsx

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,10 @@ interface InternalCellProps<RecordType extends DefaultRecordType>
4343
prefixCls?: string;
4444
className?: string;
4545
record?: RecordType;
46-
/** `record` index. Not `column` index. */
46+
/** `column` index is the real show rowIndex */
4747
index?: number;
48+
/** the index of the record. For the render(value, record, renderIndex) */
49+
renderIndex?: number;
4850
dataIndex?: DataIndex;
4951
render?: ColumnType<RecordType>['render'];
5052
component?: CustomizeComponent;
@@ -89,6 +91,7 @@ function Cell<RecordType extends DefaultRecordType>(
8991
className,
9092
record,
9193
index,
94+
renderIndex,
9295
dataIndex,
9396
render,
9497
children,
@@ -131,7 +134,7 @@ function Cell<RecordType extends DefaultRecordType>(
131134
// Customize render node
132135
childNode = value;
133136
if (render) {
134-
const renderData = render(value, record, index);
137+
const renderData = render(value, record, renderIndex);
135138

136139
if (isRenderCell(renderData)) {
137140
if (process.env.NODE_ENV !== 'production') {

tests/Table.spec.js

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -988,4 +988,36 @@ describe('Table.Basic', () => {
988988
expect(trs.at(4).find('Cell').at(1).text()).toEqual('0');
989989
expect(trs.at(5).find('Cell').at(1).text()).toEqual('1');
990990
});
991+
992+
it('hover the tree table', () => {
993+
const tColumns = [
994+
{
995+
title: 'Key',
996+
dataIndex: 'key',
997+
},
998+
];
999+
1000+
const tData = [
1001+
{ key: 'row0', children: [{ key: 'row0-0' }, { key: 'row0-1' }] },
1002+
{ key: 'row1', children: [{ key: 'row1-0' }, { key: 'row1-1' }] },
1003+
];
1004+
const wrapper = mount(
1005+
<Table columns={tColumns} expandable={{ defaultExpandAllRows: true }} data={tData} />,
1006+
);
1007+
1008+
const trs = wrapper.find('tr.rc-table-row');
1009+
1010+
trs.forEach((tr, index) => {
1011+
tr.find('td.rc-table-cell').at(0).simulate('mouseEnter');
1012+
const currentClassName = wrapper
1013+
.find('tr.rc-table-row')
1014+
.at(index)
1015+
.find('td.rc-table-cell')
1016+
.at(0)
1017+
.getElement().props.className;
1018+
1019+
expect(currentClassName.includes('rc-table-cell-row-hover')).toEqual(true);
1020+
expect(wrapper.find('td.rc-table-cell-row-hover')).toHaveLength(1);
1021+
});
1022+
});
9911023
});

0 commit comments

Comments
 (0)