Skip to content

Commit 4d475d2

Browse files
authored
fix table icon cannot expand when has expandRowByClick (#469)
1 parent 144720d commit 4d475d2

File tree

3 files changed

+30
-2
lines changed

3 files changed

+30
-2
lines changed

examples/expandIcon.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@ const Demo = () => (
4242
columns={columns}
4343
data={data}
4444
expandable={{
45-
expandRowByClick: true,
4645
expandedRowRender: record => <p>extra: {record.a}</p>,
4746
onExpand,
4847
expandIcon: CustomExpandIcon,

src/Table.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -342,7 +342,8 @@ function Table<RecordType extends DefaultRecordType>(props: TableProps<RecordTyp
342342
expandable: !!expandedRowRender,
343343
expandedKeys: mergedExpandedKeys,
344344
getRowKey,
345-
onTriggerExpand: expandRowByClick ? () => {} : onTriggerExpand,
345+
// https://github.com/ant-design/ant-design/issues/23894
346+
onTriggerExpand: expandRowByClick && expandIcon ? () => {} : onTriggerExpand,
346347
expandIcon: mergedExpandIcon,
347348
expandIconColumnIndex,
348349
direction,

tests/ExpandRow.spec.js

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -399,4 +399,32 @@ describe('Table.Expand', () => {
399399
expect(onExpand).toHaveBeenCalledWith(false, data[0]);
400400
expect(onExpand).toHaveBeenCalledTimes(2);
401401
});
402+
403+
// https://github.com/ant-design/ant-design/issues/23894
404+
it('should be collapsible when `expandRowByClick` without custom `expandIcon`', () => {
405+
const data = [{ key: 0, name: 'Lucy', age: 27, children: [{ key: 1, name: 'Jack', age: 28 }] }];
406+
const onExpand = jest.fn();
407+
const wrapper = mount(
408+
createTable({
409+
expandable: {
410+
expandedRowRender,
411+
expandRowByClick: true,
412+
onExpand,
413+
},
414+
data,
415+
}),
416+
);
417+
wrapper
418+
.find('.rc-table-row-expand-icon')
419+
.first()
420+
.simulate('click');
421+
expect(onExpand).toHaveBeenCalledWith(true, data[0]);
422+
expect(onExpand).toHaveBeenCalledTimes(1);
423+
wrapper
424+
.find('.rc-table-row-expand-icon')
425+
.first()
426+
.simulate('click');
427+
expect(onExpand).toHaveBeenCalledWith(false, data[0]);
428+
expect(onExpand).toHaveBeenCalledTimes(2);
429+
});
402430
});

0 commit comments

Comments
 (0)