From b929000d0a6ffa2cfabd64d1b11c7c0bf4250989 Mon Sep 17 00:00:00 2001 From: Ollie Taylor <13766232+OllieJT@users.noreply.github.com> Date: Fri, 24 Feb 2023 15:38:08 +0000 Subject: [PATCH 01/19] ove more values to micro stores --- src/lib/components/audio-loader.svelte | 62 +++++++++----------------- src/lib/context/audio-internals.ts | 32 +++++-------- src/lib/context/audio.ts | 48 +++++++++++++++----- 3 files changed, 68 insertions(+), 74 deletions(-) diff --git a/src/lib/components/audio-loader.svelte b/src/lib/components/audio-loader.svelte index 7da7037..732f898 100644 --- a/src/lib/components/audio-loader.svelte +++ b/src/lib/components/audio-loader.svelte @@ -2,44 +2,50 @@ import { audio_autoplay, audio_current_time, + audio_duration, audio_element, - audio_metadata, + audio_ended, + audio_loading, audio_muted, + audio_paused, audio_playback_rate, audio_src, audio_start_at, audio_volume, } from '$lib/context/audio-internals'; import type { PlayerElement } from '$lib/types/types'; - import { isBoolean, isNumber } from '$pkg/type-guards'; + // readonly values let element: PlayerElement; - let currentTime = $audio_start_at; - let volume = $audio_volume; - + let current_time = $audio_start_at; let duration = 0; let ended = true; - let muted = false; let paused = false; + + // handler values + let volume = $audio_volume; + let muted = false; let playbackRate = 1; - // Update stores based on bindings + // readonly - stores will update when bindings change $: audio_element.set(element); - $: audio_current_time.set(currentTime); - $: audio_metadata.update((x) => ({ ...x, duration, ended, paused })); + $: audio_current_time.set(current_time); + $: audio_duration.set(duration); + $: audio_ended.set(ended); + $: audio_paused.set(paused); - // Update bindings based on stores + // handlers - when store value changes, the binding will update the audio element $: volume = $audio_volume; $: muted = $audio_muted; $: playbackRate = $audio_playback_rate; - $: currentTime = $audio_start_at; + $: current_time = $audio_start_at;