Skip to main content

Changelog

Updates, changes, and improvements at Retool.

27 posts tagged with "Components"

View All Tags

Visual refresh of the component library

A visually refreshed component library is currently available as an opt-in beta for cloud-hosted organizations. It contains minor style changes to many components, such as:

  • An updated color palette.
  • Changes to the active and hover state appearance for buttons and inputs.
  • Removing borders on input attachments and buttons.
  • Fixing inconsistencies with component spacing, font weight, border radius, etc.
  • A new look for the Tab and Navigation components.

Any style overrides you've made will still be retained.

Click Get started and leave a comment to request access.

We've supercharged the Table component

New Table component

We rebuilt the Table component to improve customizability, and scalability for our customers. The new Table is capable of rendering, updating, and scrolling through hundreds of thousands of rows and hundreds of columns with diverse data types fast.

It also features deeper customization options:

  • Data manipulation (filtering, sorting, pagination) works out-of-the-box and can be configured client- or server-side.
  • Advanced filtering and sorting options, such as nested filtering and multi-column sort.
  • Primary key configuration to maintain state (like Row selection, or change set) through complex filters, sorts, and pagination operations.
  • More intuitive Tag (dropdown and multiselect) columns with the option list editor.
  • Column-level event handlers.
  • Toolbar actions for more opportunities to perform action with table data.
  • Redesigned action buttons, more intelligent defaults (including column width and type), cell captions, column header tooltips.
  • Smoother editable cell interactions and improved keyboard shortcuts.

The new Table component is available today and replaces the previous Table component. Existing customers can continue to use the previous version, which is available as the Table (legacy) component.

Check out our docs or the migration guide to get started. To learn more about building a data-driven dashboard with the new Table component, check out the following walkthrough.

Table component and Legacy Table component differences

You don't have to upgrade existing apps that use the legacy Table component. You can continue to configure the legacy Table in your existing apps, and then use the new Table component when you have an app to build.

If you want to migrate an existing app to use the new Table component, use this guide to learn more about the differences before migrating.

Column configuration

The new Table no longer supports the Auto column format. Each column must have an explicit format. Each column can contain an optional source key, which maps the column to a field in the data source. If the source key is omitted, the column is effectively a custom column.

Properties

Some commonly used Table properties have been renamed. Anywhere in your app where you reference these properties, you’ll want to update those references to the new property names.

selectedRow

The property to access the Table’s selected row changed from table1.selectedRow.data to table1.selectedRow.

currentRow

currentRow in a column’s mapped values is now currentSourceRow, to make it explicit that it references the underlying source row’s data.

recordUpdates and changeSet

The legacy Table’s edited fields were exposed in recordUpdates and changeSet. These fields are now changesetArray and changesetObject, respectively. These properties no longer contain the entire row’s data, and instead only contain the modified fields.

Pagination controls

Pagination controls are now nested under table1.pagination. This means referencing a table’s pageSize, for example, is done using table1.pagination.pageSize. Pagination is now accessible in the Table’s Add-ons section in the Inspect tab.

Save and cancel buttons

The new Table exposes the built-in save and cancel buttons for bulk editing in the Add-ons section of the Inspect tab.

Sorting controls

The legacy Table exposed several fields to represent the Table’s sorting state: defaultSortDescending, defaultSortByColumn, sortedColumn, sortedDesc. The new Table exposes the sortArray property, which represents the entire sort state of the table.

Filtering controls

The legacy Table did not support nested filtering. The new Table supports nested filters with the filterStack property.

Feature comparison

See below for a feature-by-feature comparison of the legacy Table and the new Table.

Updated approaches to existing features

CategoryFeatureDescription
Column typeAuto columnThe new Table forces explicit column types.
Column typeButton columnThe new Table has redesigned actions for triggering events.
Column typeUser Email columnThe new Table has an Avatar column that serves the same purpose.
Column typeModal columnModal columns are not supported natively in the new Table, but can be implemented by using a Column event handler to trigger a Modal component open.
ActionsAction button columnsThe new Table floats all action buttons to the right edge of the table when you hover over a row.

Legacy features unsupported in the new Table component

CategoryFeatureDescription
Column typeRating columnYou can use a Tag column to represent a rating cell instead.
SortingSort columns by raw valueThe new Table sorts columns by their mapped values.
StylingRow colorRow color is not supported in the new Table.

Display charts in mobile apps

We’ve added the ability to work with Plotly charts inside of Retool Mobile. Now you can take your dashboards on the go with built-in support for line graphs, bar charts, scatter plots, and more.