Skip to content

Client-side sorting, filtering, and grouping via filterSortAndPaginate #126

Description

@priethor

Goal

Wire up filterSortAndPaginate from @wordpress/dataviews so the DataView block can sort, filter, and group rows client-side. This gives us full operator coverage immediately without waiting for every operator to be implemented server-side.

Context

The server-side rows endpoint (#102) supports basic sort and a handful of filter operators (is, isNot, isAny, isNone). Rather than block on full server-side coverage, we can use filterSortAndPaginate to apply the complete set of view settings — filters, sort, grouping, pagination — on the data the server returns.

The two approaches are complementary: the server narrows the result set (important for large collections), and the client refines it with the full operator vocabulary that @wordpress/dataviews already provides.

Scope

  • Integrate filterSortAndPaginate into the DataView block's data flow between the REST response and what DataViews renders.
  • Ensure all filter operators supported by @wordpress/dataviews work correctly for each field type.
  • Support client-side sorting across all sortable field types.
  • Support client-side grouping.
  • Pagination mediated by filterSortAndPaginate.

Out of scope

Acceptance criteria

  • Filters, sort, and grouping applied in the DataView block work for all supported field types without requiring additional server-side operators.
  • The integration doesn't break when the server also applies partial filtering (no double-filtering issues).
  • Performance is acceptable for typical collection sizes.

Metadata

Metadata

Assignees

Labels

Fields

No fields configured for Enhancement.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions