fix(audio): don't reset prefetch state for the chapter being consumed
The stale-prefetch reset effect compared prefetchedFor against nextChapter only, so when landing on chapter N+1 (prefetchedFor=N+1, nextChapter=N+2) it would destroy the pre-fetched URL before startPlayback() could use it, breaking every auto-next transition after the first. Fix: also allow prefetchedFor === chapter (current page) so the URL survives long enough to be consumed, then only wipe truly foreign values.
This commit is contained in:
@@ -78,11 +78,16 @@
|
||||
});
|
||||
|
||||
// Reset next-chapter prefetch state when this chapter changes (new page).
|
||||
// We only reset if the prefetch is for a *different* chapter than nextChapter
|
||||
// (i.e. stale data from a prior page).
|
||||
// Only reset if the prefetch belongs to neither the current chapter
|
||||
// (about to be consumed by startPlayback) nor the next chapter (still valid).
|
||||
// Any other value means stale data from a previous page.
|
||||
$effect(() => {
|
||||
const prefetchedFor = audioStore.nextChapterPrefetched;
|
||||
if (prefetchedFor !== null && prefetchedFor !== (nextChapter ?? null)) {
|
||||
if (
|
||||
prefetchedFor !== null &&
|
||||
prefetchedFor !== chapter &&
|
||||
prefetchedFor !== (nextChapter ?? null)
|
||||
) {
|
||||
audioStore.resetNextPrefetch();
|
||||
}
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user