(
prefixCls={prefixCls}
component={RowComponent}
cellComponent={cellComponent}
- colSpan={flattenColumns.length}
+ offsetWidth={offsetWidth}
+ colSpan={flattenColumns.length - expandedRowOffset}
isEmpty={false}
>
{expandContent}
diff --git a/src/Body/ExpandedRow.tsx b/src/Body/ExpandedRow.tsx
index b4009601c..aee83c6aa 100644
--- a/src/Body/ExpandedRow.tsx
+++ b/src/Body/ExpandedRow.tsx
@@ -14,6 +14,7 @@ export interface ExpandedRowProps {
children: React.ReactNode;
colSpan: number;
isEmpty: boolean;
+ offsetWidth?: number;
}
function ExpandedRow(props: ExpandedRowProps) {
@@ -30,6 +31,7 @@ function ExpandedRow(props: ExpandedRowProps) {
expanded,
colSpan,
isEmpty,
+ offsetWidth = 0,
} = props;
const { scrollbarSize, fixHeader, fixColumn, componentWidth, horizonScroll } = useContext(
@@ -39,12 +41,11 @@ function ExpandedRow(props: ExpandedRowProps) {
// Cache render node
let contentNode = children;
-
if (isEmpty ? horizonScroll && componentWidth : fixColumn) {
contentNode = (
(props: BodyProps) {
expandedKeys,
childrenColumnName,
emptyNode,
+ expandedRowOffset,
} = useContext(TableContext, [
'prefixCls',
'getComponent',
@@ -40,6 +41,7 @@ function Body(props: BodyProps) {
'expandedKeys',
'childrenColumnName',
'emptyNode',
+ 'expandedRowOffset',
]);
const flattenData: { record: RecordType; indent: number; index: number }[] =
@@ -74,6 +76,7 @@ function Body(props: BodyProps) {
cellComponent={tdComponent}
scopeCellComponent={thComponent}
indent={indent}
+ expandedRowOffset={expandedRowOffset}
/>
);
});
diff --git a/src/Table.tsx b/src/Table.tsx
index 187d0ea32..0e1cfab16 100644
--- a/src/Table.tsx
+++ b/src/Table.tsx
@@ -822,6 +822,7 @@ function Table(
expandableType,
expandRowByClick: expandableConfig.expandRowByClick,
expandedRowRender: expandableConfig.expandedRowRender,
+ expandedRowOffset: expandableConfig.expandedRowOffset,
onTriggerExpand,
expandIconColumnIndex: expandableConfig.expandIconColumnIndex,
indentSize: expandableConfig.indentSize,
@@ -872,6 +873,7 @@ function Table(
expandableType,
expandableConfig.expandRowByClick,
expandableConfig.expandedRowRender,
+ expandableConfig.expandedRowOffset,
onTriggerExpand,
expandableConfig.expandIconColumnIndex,
expandableConfig.indentSize,
diff --git a/src/context/TableContext.tsx b/src/context/TableContext.tsx
index f566c84f0..57be08dbb 100644
--- a/src/context/TableContext.tsx
+++ b/src/context/TableContext.tsx
@@ -3,6 +3,7 @@ import type {
ColumnsType,
ColumnType,
Direction,
+ ExpandableConfig,
ExpandableType,
ExpandedRowRender,
GetComponent,
@@ -29,7 +30,6 @@ export interface TableContextProps {
direction: Direction;
fixedInfoList: readonly FixedInfo[];
isSticky: boolean;
- supportSticky: boolean;
componentWidth: number;
fixHeader: boolean;
fixColumn: boolean;
@@ -50,6 +50,7 @@ export interface TableContextProps {
expandIcon: RenderExpandIcon;
onTriggerExpand: TriggerEventHandler;
expandIconColumnIndex: number;
+ expandedRowOffset: ExpandableConfig['expandedRowOffset'];
allColumnsFixedLeft: boolean;
// Column
diff --git a/src/interface.ts b/src/interface.ts
index e645b2145..c6d9a1794 100644
--- a/src/interface.ts
+++ b/src/interface.ts
@@ -252,6 +252,7 @@ export interface ExpandableConfig {
rowExpandable?: (record: RecordType) => boolean;
columnWidth?: number | string;
fixed?: FixedType;
+ expandedRowOffset?: number;
}
// =================== Render ===================