Web: lists load as you scroll, Liked tabs, missing files greyed and kept out of the queue #154
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user