(
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) {
emptyNode,
classNames,
styles,
+ expandedRowOffset,
} = useContext(TableContext, [
'prefixCls',
'getComponent',
@@ -45,6 +46,7 @@ function Body(props: BodyProps) {
'emptyNode',
'classNames',
'styles',
+ 'expandedRowOffset',
]);
const { body: bodyCls = {} } = classNames || {};
const { body: bodyStyles = {} } = styles || {};
@@ -83,6 +85,7 @@ function Body(props: BodyProps) {
cellComponent={tdComponent}
scopeCellComponent={thComponent}
indent={indent}
+ expandedRowOffset={expandedRowOffset}
/>
);
});
diff --git a/src/Table.tsx b/src/Table.tsx
index d5a8b196c..58a626731 100644
--- a/src/Table.tsx
+++ b/src/Table.tsx
@@ -872,6 +872,7 @@ function Table(
expandedRowRender: expandableConfig.expandedRowRender,
onTriggerExpand,
expandIconColumnIndex: expandableConfig.expandIconColumnIndex,
+ expandedRowOffset: expandableConfig.expandedRowOffset,
indentSize: expandableConfig.indentSize,
allColumnsFixedLeft: flattenColumns.every(col => col.fixed === 'start'),
emptyNode,
@@ -922,6 +923,7 @@ function Table(
expandableConfig.expandedRowRender,
onTriggerExpand,
expandableConfig.expandIconColumnIndex,
+ expandableConfig.expandedRowOffset,
expandableConfig.indentSize,
emptyNode,
diff --git a/src/context/TableContext.tsx b/src/context/TableContext.tsx
index b9cae4ddc..381cf68b2 100644
--- a/src/context/TableContext.tsx
+++ b/src/context/TableContext.tsx
@@ -3,6 +3,7 @@ import type {
ColumnsType,
ColumnType,
Direction,
+ ExpandableConfig,
ExpandableType,
ExpandedRowRender,
GetComponent,
@@ -55,6 +56,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 54ebfcd97..dcdfb4f9b 100644
--- a/src/interface.ts
+++ b/src/interface.ts
@@ -256,6 +256,7 @@ export interface ExpandableConfig {
rowExpandable?: (record: RecordType) => boolean;
columnWidth?: number | string;
fixed?: FixedType;
+ expandedRowOffset?: number;
}
// =================== Render ===================