From 347438928aa5e471aa3ffe88c3acce1cf2740258 Mon Sep 17 00:00:00 2001 From: apt-get Date: Sun, 6 Jul 2025 22:31:55 +0200 Subject: [PATCH] use SvelteSet instead of Set for favoritedStreams --- src/lib/{stores.js => stores.svelte.js} | 16 ++++++++-------- src/routes/streams/Sidebar.svelte | 11 +++++------ src/routes/streams/TagSelect.svelte | 2 +- src/routes/streams/WelcomePage.svelte | 2 +- src/routes/streams/[stream_id]/+page.svelte | 2 +- .../streams/[stream_id]/MetadataEditor.svelte | 2 +- src/routes/streams/[stream_id]/Player.svelte | 2 +- src/routes/streams/[stream_id]/StreamPage.svelte | 2 +- 8 files changed, 19 insertions(+), 20 deletions(-) rename src/lib/{stores.js => stores.svelte.js} (86%) diff --git a/src/lib/stores.js b/src/lib/stores.svelte.js similarity index 86% rename from src/lib/stores.js rename to src/lib/stores.svelte.js index f32d7bb..a0df23f 100644 --- a/src/lib/stores.js +++ b/src/lib/stores.svelte.js @@ -1,18 +1,18 @@ -import { writable, get } from 'svelte/store'; +import { writable } from 'svelte/store'; import { browser } from '$app/environment'; +import { SvelteSet } from 'svelte/reactivity'; export const currentStream = writable({}); export const currentSongIndex = writable(null); -export const favoritedStreams = writable( - new Set(JSON.parse((browser && localStorage.getItem('favoritedStreams')) || '[]')) +export const favoritedStreams = new SvelteSet( + JSON.parse((browser && localStorage.getItem('favoritedStreams')) || '[]') ); - -if (browser) { - favoritedStreams.subscribe((val) => { - localStorage.setItem('favoritedStreams', JSON.stringify(Array.from(val))); +$effect.root(() => { + $effect(() => { + localStorage.setItem('favoritedStreams', JSON.stringify(Array.from(favoritedStreams))); }); -} +}); export const tagList = [ 'acoustic', diff --git a/src/routes/streams/Sidebar.svelte b/src/routes/streams/Sidebar.svelte index 0ecf1fd..c15e11b 100644 --- a/src/routes/streams/Sidebar.svelte +++ b/src/routes/streams/Sidebar.svelte @@ -1,7 +1,7 @@ @@ -57,7 +56,7 @@