Releases

View as Markdown

9.1.3#

Fix DataSource: no duplicate first-batch load on sort in lazy mode, no refetch on inline filterTypes identity changes

9.1.2#

Fix resizing a flex column when the fixed columns already overflow the viewport. The resized column now gets a fixed width instead of a flex value in that case.
columnSizing now takes precedence over columns.defaultFlex — a width in columnSizing makes a defaultFlex column fixed.

9.1.1#

Fix a crash in the edit lifecycle callbacks (onEditPersistSuccess, onEditPersistError, onEditAccepted, onEditRejected, onEditCancelled) when the edit itself moves or removes the row — for example editing the value the grid is grouped by, so the row leaves a single-row group and the row count shrinks.

9.1.0 — 18.09.2026#

New repaintCellsKey prop, also available per column as columns.repaintCellsKey.

9.0.3#

Pivot group columns bound to a field that is not a grouping key (including the pivot dimension) now show that value on nested group rows when every item in the group shares it.

9.0.2#

Fix group columns bound to a field in pivoted grids.

9.0.1 — 08.09.2026#

Generated pivot columns inherit sortability from the user column they inherit from — including columns.defaultSortable and columnDefaultSortable. They are no longer unsortable.

9.0.0 — 07.09.2026#

Faster rendering: cell styling and CSS variable computation are now memoized and cell pooling skips redundant work, so column and viewport updates re-render less.
Sorting by a pivot column now works correctly — group rows are sorted by the aggregated value in the clicked pivot column, and group column sorting is inferred from groupBy.
Devtools: new theme builder in the Infinite Table DevTools extension, for live-editing CSS variables of the current theme.
Internal: the core has been made renderer-agnostic, paving the way for the upcoming Vue version of Infinite Table (published as a canary under @infinite-table/infinite-vue).

8.0.5 — 06.07.2026#

8.0.4 — 08.04.2026#

Add useDataSourceApi, useInfiniteTableApi and useInfiniteColumnApi hooks

8.0.3 — 03.04.2026#

Improvements to the drag and drop implementation.

8.0.0#

Perf improvements by refactoring the usage of React context.
Dramatically improve scrolling performance in horizontal layout scenarios, by avoiding React flushSync operations.

7.5.1#

Minor fixes

7.5.0#

Improve perf for data updates by 35% in certain scenarios. Previously, updating a row would re-render the whole visible viewport. Starting with this version, only the updated row will re-render.
Improve scrolling performance generally, by a lot, by doing async updates. For scrolling in a horizontal layout configuration, the scrolling flushes cells synchronously.

7.4.2#

Improve perf by leveraging React async flushing whenever possible.

7.4.1#

Minor enhancement on the debug export

7.4.0#

Add custom tracks in Chrome DevTools performance profiler. Read our blogpost on custom tracks in Chrome DevTools performance profiler

7.3.6#

Add InfiniteTable.Body.rowHoverClassName to allow customizing the CSS className applied to cells on hover.

7.3.3#

Add CSS layer infinite-table to all CSS styles we provide in our CSS files.

7.3.2#

Add support for className in colTypes.

7.3.1#

Improve TreeSelectionState standalone usage by adding config for strict mode.

7.3.0#

Fix DataGrid virtualization issues in React 18 and above, caused by batched updates Improve tree selection when there is an external filter
Starting with this version, the minimum React version is 18.

7.2.4#

Minor bugfixes

7.2.3#

Fix listening to logs from the debug fn that Infinite exports, so we only listen to own logs. This avoids errors circular stringification errors of log messages.

7.2.2#

Improve TreeApi with getSelectedLeafNodePaths method and other related methods.

7.2.1#

Fix usage of React context, to be backwards compatible to React 18. This prevented the component from rendering in React 18 (affected version was 7.2.0).

7.2.0#

Release GroupingToolbar - a new way to interact with your grouping. Fix error that appeared when column pinning was used and no visible columns were available.

7.1.0#

Support for React 19 - update source-code, fix tests and update typings to work with React 19

7.0.1#

Bugfix related to devtools Uncaught TypeError: Cannot read properties of undefined (reading 'startsWith')

7.0.0#

First version that supports Infinite Table devtools.

6.2.11#

Improve performance on heavy scrolling by avoiding CSS vars for scroll pos.

6.2.10#

Recompute DataSource repeat wrapped group rows when wrapRowsHorizontally changes.

6.2.9#

Fix edge case where repeatWrappedGroupRows didn't work in trees for collapsed non-leaf nodes. When a non-leaf node was collapsed, if it was the first node in a column set, it didn't repeat its parents correctly. Version 6.2.9 fixes this.

6.2.8#

Minor bugfix.

6.2.6#

Consolidate themes

6.2.2#

Update shadcn theme to work well with the latest tailwind 4 colors.

6.2.0#

Starting with this release, the CSS for each theme (other than the "default") is not included in the root CSS file (@infinite-table/infinite-react/index.css) and has to be imported explicitly:
import '@infinite-table/infinite-react/theme/shadcn.css'
import '@infinite-table/infinite-react/theme/balsam.css'
import '@infinite-table/infinite-react/theme/minimalist.css'
import '@infinite-table/infinite-react/theme/ocean.css'

6.1.1#

Fix performance regressions introduced in 6.1.0.

6.1.0#

This release includes a refactor of the core virtualization algorithm, which should result some performance improvements in certain scenarios.
TypeDescription

6.1.0-canary.0#

Fix virtualization issues.

6.0.20#

6.0.19#

TypeDescription
enhancement✅ Implement `treeFilterFunction` for `TreeDataSource`

6.0.18#

TypeDescription
bug✅ Virtualization issue with columns - caused by column pinning

6.0.16#

TypeDescription

6.0.15#

TypeDescription
enhancement✅ Enhance DataSourceAPI for tree data

6.0.13#

TypeDescription
bug✅ DataSourceApi.getDataByNodePath not working for lazily added nodes

6.0.12#

TypeDescription
enhancement✅ Add method to update children of a certain node in the DataSource

6.0.10#

TypeDescription
bug✅ Fix DataSourceApi.removeData & friends for collapsed tree nodes

6.0.9#

TypeDescription
bug✅ Fix DataSourceApi.updateData & friends for collapsed tree nodes
enhancement✅ Add isNodeReadOnly to decide when a tree node can be expanded/collapsed via UI

6.0.8#

TypeDescription
bug✅ DataSourceApi.addDataArray not working for tree mode

6.0.5#

TypeDescription
bug✅ Tree selection bug

6.0.0#

TypeDescription
enhancement✅ Tree Grid

5.0.5#

TypeDescription
enhancement✅ Implement theme for shadcn/ui integration

5.0.4#

TypeDescription
bug✅ DataSourceApi.removeDataArrayByPrimaryKeys does not work on consecutive items

5.0.1#

TypeDescription
enhancement✅ Improve how cell selection works for horizontal layout

5.0.0#

Add support for horizontal layout.

4.4.1#

4.4.0#

TypeDescription
enhancement✅ Implement disabled rows

4.3.7#

TypeDescription
enhancement✅ Add top-level `columnDefaultDraggable` prop
enhancement✅ Implement `columnGroupVisibility` prop

4.3.2#

TypeDescription
bug✅ onScrollStop is not working

4.3.0#

Fix major lazy loading bugs and issues.

4.2.0#

Replace sortMode with shouldReloadData.sortInfo Replace groupMode with shouldReloadData.groupBy
TypeDescription
enhancement✅ Allow customizing when the DataSource.data fn is called

4.1.0#

TypeDescription
enhancement✅ Support children in InfiniteTable and allow component composition

4.0.0#

TypeDescription
✅ Remove support for columns as a map

3.3.4#

TypeDescription
enhancement✅ Export TS types for rowInfo in grouping scenarios

3.3.3#

TypeDescription
enhancement✅ Add support for Cmd or Ctrl in keyboard shortcuts
enhancement✅ Implement an easy way to attach keyboard shortcuts

3.3.0#

TypeDescription
enhancement✅ Implement minimalistic theme
enhancement✅ Remove defaultProps in preparation for react 19

3.2.11#

TypeDescription
bug✅ Sorting / Draggable Bug

3.2.6#

TypeDescription
enhancement✅ Add support for keyboard navigation for row detail expand/collapse

3.2.5#

TypeDescription
enhancement✅ In master-detail configurations, make the menus in the detail grid render in the context of the master grid.

3.2.3#

TypeDescription
enhancement✅ Make the master rowInfo available in the detail DataSource.data fn

3.2.0#

TypeDescription
enhancement✅ Implement Master-Detail

3.1.5#

TypeDescription

3.1.1#

TypeDescription
enhancement✅ Add support for knowing when a row has selected cells

3.1.0#

TypeDescription
enhancement✅ Add a simple way to close context menu

3.0.15#

TypeDescription
enhancement✅ Add support for using colors in logs

3.0.12#

TypeDescription
enhancement✅ Remove `debug` dependency

3.0.10#

TypeDescription
enhancement✅ Improve filter operators with default values

3.0.9#

TypeDescription
enhancement✅ Improve input filters look & feel

3.0.7#

TypeDescription
enhancement✅ Add `getComputedColumnById` method

3.0.4#

TypeDescription
bug✅ onDataMutations called too many times

3.0.3#

TypeDescription
bug✅ Data mutations contain stringified primary keys

3.0.1#

TypeDescription
enhancement✅ Improve cell selection API with (de)selectColumn method

3.0.0#

TypeDescription
enhancement✅ We need cell selection

2.0.8#

TypeDescription
enhancement✅ Add DataSource api method to retrieve original data array

2.0.4 🚀#

TypeDescription
enhancement✅ Allow some metadata when performing updates with the DataSource API
enhancement✅ Improve pivoting when there are no aggregations specified

2.0.3 🚀#

TypeDescription
✅ Add info about previous values in the onDataMutations callback

2.0.2 🚀#

TypeDescription
enhancement✅ Aggregation not shown when the field is already in groupby

2.0.0 🚀#

This release, although a major one, does not introduce new major functionality, but rather improves on existing features and more specifically adds support for sorting group columns.

Improved group column sorting

Version 2.0.0 allows you to make group columns sortable, even when they are configured with groupBy fields that are not actually bound to columns.
<DataSource<Person>
  groupBy={[
    // those fields are not bound to actual columns
    {field: 'team'},
    {field: 'age' },
  ]}>
  <InfiniteTable<Person>
    groupColumn={{
      sortType: ['string', 'number'], // <--- allows you to have
      // the group column sortable
    }}
    ...
/>

Updated column sortable behavior#

We've also introduced a few new props and renamed column.sortable to columns.defaultSortable.
Also, the behavior for the sortable prop has changed. The new columnDefaultSortable is now what sortable used to be, while the sortable prop overrides any sorting flags and is the ultimate source of truth for column sorting.
TypeDescription
enhancement✅ Improve support for sorting group columns
bug✅ DataSourceApi.insertData promise is resolved too early
bug✅ When column is draggable: false, clicking the column header does not sort the column
bug✅ Single group columns with multiple fields are NOT sortable via header click
bug✅ Columns which are NOT sortable still get the 'sort asc/desc' column menu items

1.3.23 🚀#

TypeDescription
bug✅ Boolean Pivot Columns don't show values in column header

1.3.22 🚀#

TypeDescription
enhancement✅ Sorting via column menu does not have id on the sortInfo

1.3.21 🚀#

TypeDescription
enhancement✅ Add delay for realigning the column menu

1.3.20 🚀#

TypeDescription
enhancement✅ Weird effect when you remove yourself from column menu

1.3.17 🚀#

TypeDescription
bug✅ Fix rendering pipeline for column headers

1.3.15 🚀#

TypeDescription
✅ Implement api.hideContextMenu

1.3.12 🚀#

TypeDescription
bug✅ Switching from pivot to non pivot does not always work
bug✅ Aggregated Row Cells should not be editable

1.3.8 🚀#

TypeDescription
bug✅ multiSortBehavior prop change is not reflected at runtime

1.3.7 🚀#

TypeDescription
bug✅ Column Menu Sorting is not working as expected
enhancement✅ Enhance multi column sort usability

1.3.6 🚀#

TypeDescription
bug✅ Fix groupColumn prop when it's a function and single-column groupRenderStrategy is used

1.3.4 🚀#

TypeDescription
bug✅ Fix usecase when aggregating by a field which is used in grouping
enhancement✅ Fix api.getCellValue for pivoting scenarios
enhancement✅ Add onColumnPinningChange callback prop to update users on changes in column pinning

1.3.2 🚀#

TypeDescription
enhancement✅ Add support for date values
enhancement✅ Improve docs on sorting

1.3.0 🚀#

TypeDescription
enhancement✅ Allow specifying a default flex for columns
enhancement✅ Add support for grouping columns with valueGetters
enhancement✅ column.valueGetter value should be used when grouping

1.2.5 🚀#

TypeDescription
enhancement✅ Implement column.verticalAlign
enhancement✅ Add support for functions to InfiniteTableColumn.align
enhancement✅ Add column.align and related props to docs

1.2.4 🚀#

TypeDescription
enhancement✅ Add api method to get value of a column
enhancement✅ Improve handling of data changes
enhancement✅ Improve docs on sorting
enhancement✅ Improve codesandbox configuration

1.2.3 🚀#

TypeDescription
enhancement✅ Implement `sortFunction` prop on DataSource

1.2.2 🚀#

TypeDescription
enhancement✅ Improve rendering of boolean columns

1.2.1 🚀#

TypeDescription
✅ Fix keyboard navigation in menus

1.2.0 🚀#

TypeDescription
enhancement✅ Rename getColumContextMenuItems to getColumnMenuItems
enhancement✅ Implement row context menu

1.1.0 🚀#

TypeDescription
enhancement✅ Add API for column filtering
enhancement✅ Implement hook for writing column filter editors

1.0.0 🚀#

TypeDescription
✅ Launch it!

0.9.0 🚀#

TypeDescription
enhancement✅ Inline editing improvements

0.8.1 🚀#

TypeDescription
bug✅ Fix `api.scrollRowIntoView` when there is no scrollbar
enhancement✅ Implement inline editing

0.8.0 🚀#

TypeDescription
enhancement✅ Improve TypeScript types for DataSourceAPI

0.7.3 🚀#

TypeDescription
bug✅ Fix DataSourceApi.insertDataArray

0.7.1 🚀#

TypeDescription
bug✅ Fix DataSourceApi.insertDataArray

0.7.0 🚀#

TypeDescription
enhancement✅ Add methods for doing real-time DataSource updates
enhancement✅ Change onReady callback signature
enhancement✅ Implement DataSourceApi

0.6.4 🚀#

TypeDescription
enhancement✅ Improve how the column menu icon is rendered
enhancement✅ Provide an api for columns

0.6.3 🚀#

TypeDescription
enhancement✅ Document how column menus can be used

0.6.2 🚀#

TypeDescription
enhancement✅ Column menus should contain correct column header

0.6.1 🚀#

TypeDescription
bug✅ Menu theme issue
enhancement✅ Add support for tab navigation

0.6.0 🚀#

TypeDescription
enhancement✅ Add support for React 18
enhancement✅ Add column menus

0.4.12 🚀#

TypeDescription

0.4.10 🚀#

TypeDescription
enhancement✅ Rename DataSource.`usePrimaryKeysForMultiRowSelection` to `useGroupKeysForMultiRowSelection `

0.4.9 🚀#

TypeDescription
enhancement✅ Implement DataSource row selection with usePrimaryKeysForMultiRowSelection

0.4.8 🚀#

TypeDescription
bug✅ Fix api.selectionApi.getSelectedPrimaryKeys

0.4.7 🚀#

TypeDescription
enhancement✅ Support shift+spacebar with checkbox multi-row selection
enhancement✅ Use column.renderSelectionCheckBox for column header when no header checkbox is defined

0.4.6 🚀#

TypeDescription
bug✅ Fix single row selection

0.4.5 🚀#

TypeDescription
enhancement✅ Improve configuration inheriting for groupColumn
bug✅ Fix hideColumnWhenGrouped

0.4.4 🚀#

TypeDescription
bug✅ Group columns are not displayed after grouping is done after a reorder
enhancement✅ Allow columns to be hidden when they are used in grouping
enhancement✅ Add ability to sort by group column

0.4.3 🚀#

TypeDescription
enhancement✅ Implement row selection

0.4.1 🚀#

TypeDescription
enhancement✅ Make `selectionMode` default to undefined

0.4.0 🚀#

TypeDescription
enhancement✅ Implement piped rendering

0.3.22 🚀#

TypeDescription
enhancement✅ Implement column reordering via drag & drop

0.3.21 🚀#

TypeDescription
bug✅ keyboardNavigation=false is not working

0.3.20 🚀#

TypeDescription
bug✅ Error when component is unmounted- Cannot read properties of null - reading 'delete'
enhancement✅ Expand rows lazily when datasource is loaded

0.3.19 🚀#

TypeDescription
bug✅ Fix column header resize issue when there are pinned columns + column groups

0.3.17 🚀#

TypeDescription
bug✅ Fix column header zindex issue when there are pinned columns + column groups

0.3.16 🚀#

TypeDescription
bug✅ Fix column resizing in pivot mode

0.3.15 🚀#

TypeDescription
bug✅ Fix `defaultActiveCellIndex`

0.3.14 🚀#

TypeDescription
enhancement✅ Implement `resizableColumns` property

0.3.13 🚀#

TypeDescription
enhancement✅ Implement column resize and column-group resize via drag&drop

0.3.12 🚀#

TypeDescription
bug✅ Properly cleanup and destroy state when component is unmounted

0.3.11 🚀#

TypeDescription
bug✅ Remove development mode code from production version

0.3.10 🚀#

TypeDescription
enhancement✅ Improve how light theme is applied

0.3.7 🚀#

TypeDescription
bug✅ Fix keyboardNavigation=

0.3.6 🚀#

TypeDescription
enhancement✅ Implement keyboard navigation for rows
enhancement✅ Implement keyboard navigation for table cells

0.3.4 🚀#

TypeDescription
enhancement✅ Add sortMode

0.3.3 🚀#

TypeDescription
enhancement✅ Implement filterValue for filtering both client-side and server-side
enhancement✅ Implement filterFunction
enhancement✅ Implement filterTypes
enhancement✅ Implement sortTypes
enhancement✅ Implement column.dataType
enhancement✅ Implement column.valueFormatter
enhancement✅ Implement column.valueGetter

0.3.2 🚀#

TypeDescription
enhancement✅ Add ability to have error for group row when using server-side grouping

0.3.1 🚀#

TypeDescription
bug✅ Fix rowStyle and rowClassName
Rename rowInfo.flatRowInfoArray to rowInfo.deepRowInfoArray

0.3.0 🚀#

TypeDescription
enhancement✅ Allow remote data function to provide deep children
enhancement✅ Add expand/collapse information to the remote data function
enhancement✅ Automatically trigger fetching of child nodes when a group row is expanded but has not been loaded
enhancement✅ Provide more information on rows during row rendering
enhancement✅ Implement virtualization for header even when there are column groups

0.3.0-canary.0 🚀#

New virtualization engine implemented for better performance.

0.2.20 🚀#

TypeDescription
bug✅ Rows flickering in lazy load batching when multiple http requests are in progress
bug✅ [BUG] Multiple (redundant) calls for the same lazy loaded data

0.2.18 🚀#

TypeDescription
enhancement✅ Fix perf issue when there are many columns and column groups

0.2.17 🚀#

TypeDescription
enhancement✅ Implement grand total columns
enhancement✅ Remove lag that occurs on expanding a group when `hideEmptyGroupColumns` is set to true

0.2.16 🚀#

TypeDescription
enhancement✅ Make columnTypes support `components`, just like columns

0.2.15 🚀#

TypeDescription
enhancement✅ Allow users to take full control of column cell and header elements
enhancement✅ Allow using hooks in column.render and column.header functions

0.2.14 🚀#

TypeDescription
enhancement✅ Make generated pivot columns default to the config of original column with same field
bug✅ Demo Server: Pivoting by 3 columns or a specific combination of columns fails with 5xx
bug✅ Serverside: changing pivoting does not load new data
enhancement✅ Fix the display of grouping and aggregation + pivoting when pivotBy is empty array

0.2.13 🚀#

TypeDescription
enhancement✅ Replace jest+puppeteer with playwright
bug✅ Server-side grouping with no aggregation or empty aggregation object goes wrong when there is no pivoting

0.2.12 🚀#

TypeDescription
bug✅ Change in columnTypes does not re-render columns

0.2.11 🚀#

TypeDescription
enhancement✅ Add support for `style` property in column types
enhancement✅ Implement columns auto-sizing

0.2.10 🚀#

TypeDescription
enhancement✅ Add minWidth and maxWidth to columns

0.2.9 🚀#

TypeDescription
enhancement✅ Type suggestions are not correct - types can be imported in two different ways

0.2.8 🚀#

TypeDescription
bug✅ rowInfo.flatRowInfoList is not updated for leaf rows

0.2.7 🚀#

TypeDescription
bug✅ Display issue with groups and pivot
bug✅ Changing hideEmptyGroupColumns from true to false, at runtime, does not work

0.2.6 🚀#

TypeDescription
enhancement✅ Rename column.defaultHiddenWhenGrouped to column.defaultHiddenWhenGroupedBy and enhance with multiple options

0.2.5 🚀#

TypeDescription
enhancement✅ Implement column.defaultHiddenWhenGrouped
bug✅ hideEmptyGroupColumns not working when table is rendered in fully expanded state

0.2.4 🚀#

TypeDescription
enhancement✅ Implement lazyLoad for non-grouped and non-pivoted data sources
enhancement✅ Add server-side lazy loading support for grouping
enhancement✅ Implement support for scrolling through the whole remote dataset
enhancement✅ Add support for "multi-column" and "inline" groupRenderStrategy when used as pivot

0.2.0 🚀#

0.1.0 🚀#

This release introduces several breaking changes:
  • DataSource.groupRowsBy has been renamed to groupBy
  • InfiniteTable.columnAggregations has been removed and you have to use aggregationReducers
TypeDescription
enhancement✅ Add support for multiple aggregations
enhancement✅ Rename `groupRowsBy` to `groupBy`
bug✅ Resetting pivot configuration is not working

0.0.10 🚀#

TypeDescription
bug✅ Safari 14 not working due to new regexp features used by decamelize function
enhancement✅ "cannot find column at index" logs in the console
enhancement✅ Implement column flex sizing

0.0.9 🚀#

TypeDescription
bug✅ onScrollToBottom (=getNextPage) is not called when scrollbar is not displayed

0.0.7 🚀#

TypeDescription
bug✅ Columns are not updated when lazily set

0.0.5 🚀#

TypeDescription
enhancement✅ Add support for pivot column in DataSource.pivotBy
documentation✅ Add pivoting page in docs