Implement a new site plugins list #24023
Open
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.
Note
This PR is built on top of #24014.
The new screen follows the pattern established in the self-hosted site User Management. An application password is required to access this feature (when it's turned on).
Here is a recording of this screen:
plugins.mp4
As part of this PR, I made a small change to
CachedAsyncImage
. It now accepts an interim object (ImageURLResolver
), which eventually produces an imageURL
. The icons in the plugin list is not part of the plugins response. Their url has to be loaded separately.I could spin up separate tasks to load them and then refresh the plugins list after they are loaded. But I thought making them part of the image loading process might be more straightforward in terms of managing the loading tasks: SwiftUI would take care of them.
Of course, that comes with a downside: All URLs are put into an
async
call, which is definitely slower than just using them directly in the calling thread. But I thought that's an okay compromise to make.Regression Notes
Potential unintended areas of impact
What I did to test those areas of impact (or what existing automated tests I relied on)
What automated tests I added (or what prevented me from doing so)
PR submission checklist:
RELEASE-NOTES.txt
if necessary.Testing checklist: