diff --git a/packages/react-table/package.json b/packages/react-table/package.json index dc1aecfc8e..a34a2e1af6 100644 --- a/packages/react-table/package.json +++ b/packages/react-table/package.json @@ -63,8 +63,7 @@ "build": "tsdown" }, "dependencies": { - "@tanstack/react-store": "^0.11.0", - "@tanstack/table-core": "workspace:*" + "@tanstack/react-store": "^0.11.0" }, "devDependencies": { "@eslint-react/eslint-plugin": "^5.8.16", @@ -75,6 +74,7 @@ "react": "^19.2.7" }, "peerDependencies": { + "@tanstack/table-core": "workspace:*", "react": ">=18" } } diff --git a/packages/table-core/src/core/columns/constructColumn.ts b/packages/table-core/src/core/columns/constructColumn.ts index b6ca11debf..82baee88cf 100644 --- a/packages/table-core/src/core/columns/constructColumn.ts +++ b/packages/table-core/src/core/columns/constructColumn.ts @@ -115,5 +115,11 @@ export function constructColumn< column.id = `${String(id)}` column.parent = parent + // Initialize instance-specific data (e.g., caches) for features that need it + const features = Object.values(table._features) + for (let i = 0; i < features.length; i++) { + features[i]!.initColumnInstanceData?.(column) + } + return column as Column } diff --git a/packages/table-core/src/features/column-grouping/columnGroupingFeature.types.ts b/packages/table-core/src/features/column-grouping/columnGroupingFeature.types.ts index c376f378fa..a39daad78f 100644 --- a/packages/table-core/src/features/column-grouping/columnGroupingFeature.types.ts +++ b/packages/table-core/src/features/column-grouping/columnGroupingFeature.types.ts @@ -89,7 +89,7 @@ export interface ColumnDef_ColumnGrouping< /** * Specify a value to be used for grouping rows on this column. If this option is not specified, the value derived from `accessorKey` / `accessorFn` will be used instead. */ - getGroupingValue?: (row: TData) => any + getGroupingValue?: (row: TData, index: number) => any } export interface Column_ColumnGrouping< diff --git a/packages/table-core/src/features/column-grouping/columnGroupingFeature.utils.ts b/packages/table-core/src/features/column-grouping/columnGroupingFeature.utils.ts index 49c26083b3..b36aadbeec 100644 --- a/packages/table-core/src/features/column-grouping/columnGroupingFeature.utils.ts +++ b/packages/table-core/src/features/column-grouping/columnGroupingFeature.utils.ts @@ -284,6 +284,7 @@ export function row_getGroupingValue< if (row._groupingValuesCache) { row._groupingValuesCache[columnId] = column.columnDef.getGroupingValue( row.original, + row.index, ) }