Repository navigation
Conversation
Add a corner "NEW" badge to installed cards whose vault version differs from the running copy (a strictly newer release, or a maintainer's pinned rollback), installing just that one update. The existing enable/disable controls stay in place. Serialise installs behind one one-at-a-time lock shared by the per-card badges, the gallery FABs, the details dialog and "Update all", guarded by a ref so a second click landing before re-render cannot start a competing install. Add updateActionLabel for the upgrade-vs-rollback tooltip with colocated tests, and bump store to 1.9.0.
There was a problem hiding this comment.
ℹ️ Minor suggestions only — the locking and stdlib hold look right; two small polish points inline.
Reviewed changes — reviewed the per-card update feature on the Installed tab in this run.
- Corner update badge — installed cards with a pending vault version get a clickable starburst affordance wired to
runInstallfor that module alone. - Upgrade vs rollback wording — new
updateActionLabelhelper supplies the tooltip and accessible name direction, with unit tests. - One-at-a-time installs —
updateLockref plusupdatingstate serialize gallery FABs, details dialog, badges, andUpdate all, with the staged-stdlib hold shared per card. - Styling and version bump — badge styles, pulse animation, card-name clearance, and store
1.8.1to1.9.0.
muse-spark-1.3-contributor (free via Pullfrog for OSS) | 𝕏
| // Keep the name clear of the corner update badge on installed cards; | ||
| // catalog cards have no badge, so they keep the full width. | ||
| &:not(.spicetify-store-card--catalog) .spicetify-store-card-name { | ||
| padding-right: 30px; |
There was a problem hiding this comment.
The 30px clearance applies to every installed card, so names on cards with no badge truncate slightly earlier than needed. Consider adding a modifier class only when props.update renders and scoping the padding to it.
| type="button" | ||
| className={`spicetify-store-update-badge${props.busy ? " spicetify-store-update-badge--busy" : ""}`} | ||
| title={title} | ||
| aria-label={label} |
There was a problem hiding this comment.
Busy and hold states only change title; a screen reader keeps hearing the stale label. Derive aria-label from the same title value so the Updating… and stdlib-hold states are announced.

Add a corner "NEW" badge to installed cards whose vault version differs from the running copy (a strictly newer release, or a maintainer's pinned rollback), installing just that one update. The existing enable/disable controls stay in place.
Serialise installs behind one one-at-a-time lock shared by the per-card badges, the gallery FABs, the details dialog and "Update all", guarded by a ref so a second click landing before re-render cannot start a competing install.
Add updateActionLabel for the upgrade-vs-rollback tooltip with colocated tests, and bump store to 1.9.0.