Fix data table filter issues: add counts, persist filters, and real-time updates #58
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR addresses three main issues with the data table filters:
Filter Counts: The filters now display accurate counts of the data remaining, synchronized with the server data. This is implemented by connecting the filters to the data source and updating the faceted counts.
Query Parameter Persistence: Filters now persist on page reload with query parameters as the source of truth. This is implemented using the
useFilterSynchook with improved options for debouncing and history management.Real-time Data Updates: The filters now update the data in real-time when changed. This is implemented using React Query to fetch data based on the current filter state.
Implementation Details:
useFilteredDatahook that combines filter state management with data fetchinguseFilterSyncto better handle URL synchronization with debouncinguseDataQuery(formerlyuseIssuesQuery) to be more generic and handle real-time updatesUsage Example:
This PR ensures that when filters are updated, users can see the correct counts of the data remaining (accurate from the server), the filters filter the data in the table on change, and the filters persist on refresh from the query params as the source of truth.
💻 View my work • About Codegen