Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update <PrevNextButtons> to fetch less aggressively #9209

Merged
merged 8 commits into from
Aug 23, 2023
Merged

Conversation

fzaninotto
Copy link
Member

Problem

<PrevNextButtons> has to fetch the entire list to determine the previous and next id. This may be costly in network and server time (on the client-side, iven with a list of 1000 items, the time is negligible).

Solution

Check if the previous and next id can't be determined from the cache first, so that users coming from a list page don't need to fetch the entire list of records

Out of scope

When a user reaches the end of the list cache, update the list params in the store to increment or decrement the page.

To Do

  • Use <PrevNextButtons /> in the demo
  • Allow to specify filterDefaultValues
  • Use the cache if possible

@fzaninotto fzaninotto added the RFR Ready For Review label Aug 21, 2023
// If the previous and next ids are not in the cache, fetch the entire list.
// This is necessary e.g. when coming directly to a detail page,
// without displaying the list first
const { data, error, isLoading } = useQuery(
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I used useQuery instead of useGetList to avoid paying the tax of prepopulating the getOne cache, which can be costly for large lists.

@fzaninotto fzaninotto added this to the 4.14.0 milestone Aug 23, 2023
@fzaninotto fzaninotto merged commit 736d0be into next Aug 23, 2023
8 checks passed
@fzaninotto fzaninotto deleted the fix-prev-next branch August 23, 2023 13:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
RFR Ready For Review
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants