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.
An issue with
usePowerSyncWatchedQuery
is that the initial render gets an empty array. Apart from not being able to distinguish between "loading" and "no results", there's no easy way to load the data before rendering the component.To illustrate the issue, I added a 400ms delay to queries. Without this delay, you see a very brief flash, but it's difficult to show in a recording.
Without.Preloading.webm
Some routers such as react-router supports "loaders", which can load content before navigating. This is a great place to load the initial query results, to get this:
With.Preloading.webm
The API for this is still a little tricky. The initial results need to be performed in a loader function, while the watching still happens in the component itself. This PR has a POC of a loading method that loads the initial query results, but additionally preserves the query itself for watching later.