-
Notifications
You must be signed in to change notification settings - Fork 248
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
(feat) Add infinite loading to the visits summary page #1643
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
denniskigen
requested review from
donaldkibet,
ibacher,
brandones,
vasharma05 and
mogoodrich
February 7, 2024 22:49
Size Change: +964 B (0%) Total Size: 10.7 MB ℹ️ View Unchanged
|
donaldkibet
approved these changes
Feb 8, 2024
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Requirements
Summary
Loading all visits in the Visits summary page upfront can make for a bad user experience when a patient has many visits with numerous observations.
This PR adds a new hook to the visits resource,
useInfiniteVisits
that fetches a certain number of visits when the visits summary page is first loaded. This number is determined by thenumberOfVisitsToLoad
configuration property. I've added a button at the bottom of the page labelledLoad more
. Clicking this button loadsnumberOfVisitsToLoad
more visits, and can be clicked until there are no more visits to load. At that point, the button gets hidden.With these changes, we can make data fetching more efficient and make the potentially UI more responsive.
Screenshots
infinite-loading.mp4
Related Issue
https://openmrs.atlassian.net/browse/O3-2830
Other
One thing I've not done here is get rid of the
useVisits
hook entirely. It's still getting used in a couple of places which leverage it's boundmutate
function to revalidate visits data. It's probably safe to do, but I erred on the side of caution.Another avenue where performance gains can be made is culling the data we're requesting through the custom representation in the URL:
We're fetching the full version of both obs and orders. This is not ideal and should likely be optimized further. I've not explored that in this PR, however.