Skip to content

Release v4.15.0

Choose a tag to compare

@github-actions github-actions released this 26 Sep 08:51
12128ac

Query-backed tables and DataPage now tell your users when data is loading, when a query failed, and when they are not allowed to see it. Until now, all three looked like an empty result.

Added

  • DataTableForQuery, DataTableForObservableQuery, and DataPage show a loading row while the first result is on its way, and a failure row when the query fails or the user is not authorized. A table that is refreshing rows it already shows keeps them visible and marks itself busy (aria-busy on the table, data-busy on the root). Server exception text is never shown. (#327)
  • loadingMessage, failureMessage, and unauthorizedMessage props on DataTableCore, both query tables, and DataPage, with provider-wide defaults in CratisComponentsProvider messages.dataTable.loading, .failed, and .unauthorized. (#327)
  • DataTableCore accepts status (DataTableStatus.Ready, Loading, Failed, or Unauthorized) so a table over local rows can show the same states. (#327)
  • New stable parts loading-row, loading-cell, failure-row, and failure-cell (typed as loadingRow, loadingCell, failureRow, and failureCell in DataTableParts). The failure cell carries data-reason, and the loading and failure text are announced to screen readers through role="status" and role="alert". (#327)
  • PivotViewer announces its loading state to screen readers, labeled by the new loadingLabel prop (default Loading…). (#328)

Changed

  • While a query table's first result loads, or when its query fails or is unauthorized, the table now renders the new loading or failure row instead of an empty empty-row/emptyMessage. empty-row still renders for a query that returns no rows. If your CSS or tests target empty-row to detect loading or errors, update them to the new parts. (#327)
  • An observable query that is missing a required argument never subscribes, so its table now shows the loading row until every required argument has a value; before, it showed a blank row. A snapshot query missing a required argument still shows emptyMessage. (#327)
  • ToolbarButton exposes aria-pressed when you pass active, so assistive technology announces the toggle state. Buttons without active are unchanged. (#328)