[UEPR-546] Use configurable assetHost for library asset thumbnails#578
Draft
adzhindzhi wants to merge 1 commit into
Draft
Conversation
This file contains hidden or 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
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.
Resolves
UEPR-546
Proposed Changes
assetServiceUrifield from the objects returned bygetItemIcons()and fromScratchImageprops<img src={assetServiceUri}>on web. All platforms now go through<ScratchImage>, with theplatformprop passed through soScratchImagecan adjust its behaviour.ScratchImage: web sets_maxParallelism = Infinity(no cap), while desktop/Android keeps 6 (loading up to 6 parallel items on web adds a significant visual delay compared to previous behavior)VisibilitySensorrender-prop pattern, which calledloadPendingImages()on every render, with theonChangecallback, which fires only when visibility actually changes._assetCacheMap so assets already fetched in a session are served from memory on subsequent requests.Reason for Changes
Library thumbnail URLs were hardcoded to
https://cdn.assets.scratch.mit.edu, making the asset host non-configurable and bypassing the scratch-storage layer entirely. This meant theassetHostprop passed to the GUI had no effect on library thumbnails, making other platforms unable use a different asset host. Routing everything throughscratch-storage's registered web stores makes the host fully configurable via the standardassetHostprop.