From f5df1b016d35316d4a2ef5d66a8684d154756af1 Mon Sep 17 00:00:00 2001 From: w3cj Date: Thu, 8 Aug 2024 13:53:46 -0600 Subject: [PATCH] bug: fix player button press when playing --- .../show/[show_number]/[slug]/+layout.svelte | 16 ++++++++++++++-- src/state/player.ts | 3 ++- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/routes/(site)/show/[show_number]/[slug]/+layout.svelte b/src/routes/(site)/show/[show_number]/[slug]/+layout.svelte index 8683c24e5..78f86c058 100644 --- a/src/routes/(site)/show/[show_number]/[slug]/+layout.svelte +++ b/src/routes/(site)/show/[show_number]/[slug]/+layout.svelte @@ -34,12 +34,19 @@ } function play_show() { - player.start_show(show, time_param_to_seconds(time_start)); + if ($player.current_show?.number !== show.number || $player.status === 'INITIAL') { + player.start_show(show, time_param_to_seconds(time_start)); + } else if ($player.status === 'PLAYING') { + player.pause(); + } else { + player.play(); + } } function variable_svg(node: HTMLElement) { replace_color(node); } +
@@ -82,7 +89,12 @@ ? 'ing' : ''}" /> - Play{$player.current_show?.number === show.number ? 'ing' : ''} Episode {show.number} + {#if $player.status === 'PAUSED' && $player.current_show?.number === show.number} + Resume + {:else} + Play{$player.current_show?.number === show.number ? 'ing' : ''} + {/if} + Episode {show.number} or diff --git a/src/state/player.ts b/src/state/player.ts index 892a63df4..89ccef8e6 100644 --- a/src/state/player.ts +++ b/src/state/player.ts @@ -116,7 +116,7 @@ const new_player_state = () => { state.audio.src = incoming_show.url; state.audio.currentTime = resume_time; state.current_show = incoming_show; - state.status = 'LOADED'; + state.status = resume_time > 0 ? 'PAUSED' : 'LOADED'; } return state; }); @@ -179,6 +179,7 @@ const new_player_state = () => { // Finally Start Playing this.play(); } catch (error) { + console.log('setting initial...'); update((state) => ({ ...state, status: 'INITIAL' })); } },