Skip to content

Commit b5fc268

Browse files
committed
feat: review
1 parent 239af54 commit b5fc268

File tree

5 files changed

+26
-22
lines changed

5 files changed

+26
-22
lines changed

docs/demo/colspan-rowspan-expanded.md

Lines changed: 0 additions & 8 deletions
This file was deleted.

docs/demo/expandedRowSpan.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
---
2+
title: expandedRowSpan
3+
nav:
4+
title: Demo
5+
path: /demo
6+
---
7+
8+
<code src="../examples/expandedRowSpan.tsx"></code>

docs/examples/colspan-rowspan-expanded.tsx renamed to docs/examples/expandedRowSpan.tsx

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,11 +42,12 @@ const data = [
4242

4343
const Demo = () => (
4444
<div>
45-
<h2>colSpan & rowSpan & expanded</h2>
46-
<Table
45+
<h2>expanded & rowSpan</h2>
46+
<Table<Record<string, any>>
47+
rowKey="key"
4748
columns={columns}
4849
data={data}
49-
expandable={{ expandedRowRender: (record: any) => <p style={{ margin: 0 }}>{record.key}</p> }}
50+
expandable={{ expandedRowRender: record => <p style={{ margin: 0 }}>{record.key}</p> }}
5051
className="table"
5152
/>
5253
</div>

src/Body/index.tsx

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,12 @@ function Body<RecordType>(props: BodyProps<RecordType>) {
4242
'emptyNode',
4343
]);
4444

45-
const flattenData: { record: RecordType; indent: number; index: number }[] =
46-
useFlattenRecords<RecordType>(data, childrenColumnName, expandedKeys, getRowKey);
45+
const flattenData = useFlattenRecords<RecordType>(
46+
data,
47+
childrenColumnName,
48+
expandedKeys,
49+
getRowKey,
50+
);
4751

4852
// =================== Performance ====================
4953
const perfRef = React.useRef<PerfRecord>({
@@ -59,19 +63,15 @@ function Body<RecordType>(props: BodyProps<RecordType>) {
5963
let rows: React.ReactNode;
6064
if (data.length) {
6165
rows = flattenData.map((item, idx) => {
62-
const { record, indent, index: renderIndex } = item;
63-
64-
const key = getRowKey(record, idx);
66+
const { record, indent, index: renderIndex, rowKey } = item;
6567

6668
return (
6769
<BodyRow
68-
key={key}
69-
rowKey={key}
70+
key={rowKey}
71+
rowKey={rowKey}
7072
getRowKey={index => {
71-
const thisRecord = flattenData[index]?.record;
72-
if (thisRecord) {
73-
return getRowKey(thisRecord, index);
74-
}
73+
const thisRecord = flattenData[index];
74+
return thisRecord?.rowKey;
7575
}}
7676
record={record}
7777
index={idx}

src/hooks/useFlattenRecords.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ function fillRecords<T>(
1515
record,
1616
indent,
1717
index,
18+
rowKey: getRowKey(record, index),
1819
});
1920

2021
const key = getRowKey(record);
@@ -41,6 +42,7 @@ export interface FlattenData<RecordType> {
4142
record: RecordType;
4243
indent: number;
4344
index: number;
45+
rowKey: Key;
4446
}
4547

4648
/**
@@ -80,6 +82,7 @@ export default function useFlattenRecords<T>(
8082
record: item,
8183
indent: 0,
8284
index,
85+
rowKey: getRowKey(item, index),
8386
};
8487
});
8588
}, [data, childrenColumnName, expandedKeys, getRowKey]);

0 commit comments

Comments
 (0)