# Quarterly Update - Spring 2022

> Infinite Table update for Spring 2022

Published: 2022-08-01  
Author: admin  
Tags: product

Canonical page: https://infinite-table.com/blog/2022/08/01/infinite-table-monthly-update-july-2022

This spring, we've been hard at work preparing for our Autumn release.

We have implemented a few new functionalities:

- [column resizing](#column-resizing) is now available
- [column reordering](#column-reordering) can be achieved via drag & drop
- [keyboard navigation](#keyboard-navigation) with support for both row and cell navigation

And we have updated some of the existing features:

- [lazy grouping](#lazy-grouping)
  - expands lazy loaded rows correctly and
  - also the server response can contain multiple levels of `children`, which basically allows the backend to send more data for groups you don't want to load lazily
- [column groups](#column-grouping) are now improved with support for proportional column resizing
- [pivot columns](#pivoting) are now easier to style and customize

At the end of the spring, we started working on row and cell selection and we've made good progress on it.

Row selection is already implemented for non-lazy group data and we're working on integrating it with lazy group data (e.g groups lazily loaded from the server). Of course, it will have integration with checkbox selection.

Multiple row selection will have 2 ways to select data:

- via mouse/keyboard interaction - we've emulated the behavior you're used to from your Finder in MacOS.
- via checkbox - this is especially useful when the table is configured with grouping.

## New Features

### Column Resizing

By default columns are now resizable. You can control this at column level via [column.resizable](https://infinite-table.com/docs/reference/infinite-table-props.md#columns.resizable) or at grid level via [`resizableColumns`](https://infinite-table.com/docs/reference/infinite-table-props.md#resizableColumns).

Read more about how you can configure column resizing to fit your needs.

[Resizable columns example](https://codesandbox.io/s/infinite-table-resizable-columns-example-gq0fnv)

A nice feature is support for SHIFT resizing - which will share space on resize between adjacent columns - try it in the example above.

### Column Reordering

Column order is a core functionality of `InfiniteTable` - read how you can leverage it in your app.

The default column order is the order in which columns appear in the columns object, but you can specify a [`defaultColumnOrder`](https://infinite-table.com/docs/reference/infinite-table-props.md#defaultColumnOrder) or tightly control it via the controlled property [`columnOrder`](https://infinite-table.com/docs/reference/infinite-table-props.md#columnOrder) - use [`onColumnOrderChange`](https://infinite-table.com/docs/reference/infinite-table-props.md#onColumnOrderChange) to get notifications when columns are reordered by the user.

[Column order](https://codesandbox.io/s/infinite-table-column-order-advanced-example-ro12mu)

### Keyboard Navigation

Both cell and row navigation is supported - use [`keyboardNavigation`](https://infinite-table.com/docs/reference/infinite-table-props.md#keyboardNavigation) to configure it. By default, cell navigation is enabled.

[Keyboard navigation](https://codesandbox.io/s/infinite-table-keyboard-navigating-cells-uncontrolled-tvwkmq)

## Updated Features

### Lazy grouping

Server side grouping has support for lazy loading - `InfiniteTable` will automatically load lazy rows that are configured as expanded.

[Lazy loaded rows are properly expanded](https://codesandbox.io/s/infinite-table-lazy-grouping-with-expanded-rows-pkihtt)

Another nice feature is the ability for a group node to also contain its direct children in the server response, which basically allows the backend to eagerly load data for certain groups.

Lazy grouping (with or without batching) is an advanced feature that allows you to integrate with huge datasets without loading them into the browser.

### Column grouping

Column grouping was enhanced with support for pinned columns. Now you can use them in combination.

Column groups is a powerful way to arrange columns to fit your business requirements - read how easy it is to define them.

[Column groups with pinning](https://codesandbox.io/s/infinite-table-column-groups-with-pinning-ks16dp)

### Pivoting

Pivot columns are now easier to style and benefit from piped rendering to allow maximum customization.

Pivoting is probably our most advanced use-case. We offer full support for server-side pivoting and aggregations.

[Customized pivot columns](https://codesandbox.io/s/infinite-table-custom-rendering-for-pivot-p2ern7)
