diff --git a/plugins/career/screen.js b/plugins/career/screen.js index 5ea40b9..e8f97fc 100644 --- a/plugins/career/screen.js +++ b/plugins/career/screen.js @@ -88,7 +88,11 @@ } else { action = '
Venue pack coming soon — plays with the standard stage for now
'; } - const isActive = !locked && localStorage.getItem(VENUE_OVERRIDE_KEY) === v.id; + // Mirror pushCrowdManifest(): an override only counts while the pack + // is installed — after a removal the badge must not claim a venue the + // crowd layer can't use. + const isActive = !locked && v.installed && + localStorage.getItem(VENUE_OVERRIDE_KEY) === v.id; return `
${esc(v.name)}${isActive ? ' ● playing here' : ''}
@@ -172,8 +176,11 @@ fetch(`${API}/packs/${dlBtn.dataset.careerDownload}/download`, { method: 'POST' }) .then(refresh); } else if (delBtn) { + // Do NOT null _appliedManifestVenue here: pushCrowdManifest() + // clears/replaces the crowd manifest precisely by seeing that the + // applied venue is no longer among the installed ones. fetch(`${API}/packs/${delBtn.dataset.careerDelete}`, { method: 'DELETE' }) - .then(() => { _appliedManifestVenue = null; refresh(); }); + .then(refresh); } else if (playBtn) { try { localStorage.setItem(VENUE_OVERRIDE_KEY, playBtn.dataset.careerPlay); } catch (_) { /* ok */ } _appliedManifestVenue = null; // force manifest re-push