Web: lists load as you scroll, Liked tabs, missing files greyed and kept out of the queue #154

Merged
bvandeusen merged 4 commits from dev into main 2026-10-08 20:08:05 -04:00
Showing only changes of commit bf0bc45c4b - Show all commits
+3 -3
View File
@@ -144,8 +144,7 @@ export function playQueue(
// rotation-aware order, so no client shuffle in that path). // rotation-aware order, so no client shuffle in that path).
_queueSource = opts.source ?? null; _queueSource = opts.source ?? null;
// #968: a fresh play replaces the self-heal closure + resets its budget. // #968: a fresh play replaces the self-heal closure + resets its budget.
const refetch = opts.refetch; _queueRefetch = opts.refetch ?? null;
_queueRefetch = refetch ? () => refetch().then(playable) : null;
_selfHealAttempts = 0; _selfHealAttempts = 0;
// Start on the chosen track's place in the playable list; if the chosen // Start on the chosen track's place in the playable list; if the chosen
// one is missing, that place holds the next playable track after it. // one is missing, that place holds the next playable track after it.
@@ -376,7 +375,8 @@ function trySelfHeal(): boolean {
_error = null; _error = null;
const refetch = _queueRefetch; const refetch = _queueRefetch;
void refetch() void refetch()
.then((refs) => { .then((fetched) => {
const refs = playable(fetched);
if (refs.length > 0) { if (refs.length > 0) {
// Re-seed in place — keep _queueSource / _queueRefetch so the new // Re-seed in place — keep _queueSource / _queueRefetch so the new
// snapshot can itself self-heal, and don't reset _selfHealAttempts // snapshot can itself self-heal, and don't reset _selfHealAttempts