refactor: migrate sponsors banner to component with caching, for #363 #372
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.
The Issue
The sponsors banner has a few problems:
Sponsorship data isn't cached, and there’s no fallback if GitHub is unavailable:
Pressing F5 or moving from page to page causes the whole site to jump:
How This PR Solves The Issue
Adds initial cache for all sponsorships during
npm run build
(so GitHub failure doesn't break it) and then caches fresh data for a day.I tried several ways to make the banner appear immediately. Nothing worked, I asked ChatGPT to refactor it into an Astro component, which stopped the jumping. This was annoying.
Manual Testing Instructions
ddevSponsorshipData
in local storageddevSponsorshipData
, open network tab again, and check for new fetch from GitHubNote: I deleted
src/scripts/sponsors-banner.js
as not needed.Automated Testing Overview
Related Issue Link(s)
Release/Deployment Notes