From 7bcc4814837c09d8ce1c50c53ea0827a1604da53 Mon Sep 17 00:00:00 2001 From: root Date: Wed, 8 Apr 2026 15:14:51 +0500 Subject: [PATCH] feat: listening settings tab controls, warm-up button, resume button - Listening tab: expose Speed, Auto-next, and Announce chapter controls alongside the existing Player Style row (chapters/[n]/+page.svelte) - AudioPlayer: add Warm up Ch. N button in standard player ready state when autoNext is off; shows prefetching spinner and completion status - Book page: fetch saved audioTime on mount; show Resume Ch. N button (desktop + mobile) that sets autoStartChapter and navigates directly --- ui/src/lib/components/AudioPlayer.svelte | 41 ++++++++++++++ ui/src/routes/books/[slug]/+page.svelte | 49 ++++++++++++++++- .../books/[slug]/chapters/[n]/+page.svelte | 55 +++++++++++++++++++ 3 files changed, 144 insertions(+), 1 deletion(-) diff --git a/ui/src/lib/components/AudioPlayer.svelte b/ui/src/lib/components/AudioPlayer.svelte index 6e3b65b..a1a6b63 100644 --- a/ui/src/lib/components/AudioPlayer.svelte +++ b/ui/src/lib/components/AudioPlayer.svelte @@ -1345,6 +1345,47 @@ + + + {#if !audioStore.autoNext && nextChapter != null} +
+ {#if audioStore.nextStatus === 'none'} + + {:else if audioStore.nextStatus === 'prefetching'} + + + + + + Warming up Ch. {nextChapter}… + + {:else if audioStore.nextStatus === 'prefetched'} + + + + + Ch. {nextChapter} ready + + {:else if audioStore.nextStatus === 'failed'} + + + + + Warm-up failed + + {/if} +
+ {/if} {/if} {:else if audioStore.active} diff --git a/ui/src/routes/books/[slug]/+page.svelte b/ui/src/routes/books/[slug]/+page.svelte index f29c407..767c0b8 100644 --- a/ui/src/routes/books/[slug]/+page.svelte +++ b/ui/src/routes/books/[slug]/+page.svelte @@ -1,20 +1,43 @@