From b2e3913df825e0e4541e44fdb752e124669c7a54 Mon Sep 17 00:00:00 2001 From: Bryan Van Deusen Date: Sun, 3 May 2026 21:39:57 -0400 Subject: [PATCH] feat(web/m7-364): clear persisted queue + reset queue on logout --- web/src/lib/auth/store.svelte.ts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/web/src/lib/auth/store.svelte.ts b/web/src/lib/auth/store.svelte.ts index 5e4932ea..662bf0bf 100644 --- a/web/src/lib/auth/store.svelte.ts +++ b/web/src/lib/auth/store.svelte.ts @@ -1,5 +1,7 @@ import { api, type User, type LoginResponse } from '$lib/api/client'; import { queryClient } from '$lib/query/client'; +import { clearPersistedQueue } from '$lib/player/persisted'; +import { playQueue, closeQueueDrawer } from '$lib/player/store.svelte'; let _user = $state(null); @@ -23,6 +25,7 @@ export async function login(username: string, password: string): Promise { } export async function logout(opts: { silent?: boolean } = {}): Promise { + const userId = _user?.id; if (!opts.silent) { try { await api.post('/api/auth/logout', {}); @@ -32,4 +35,9 @@ export async function logout(opts: { silent?: boolean } = {}): Promise { } _user = null; queryClient.clear(); + // M7 #364: clear queue persistence + reset in-memory queue + close drawer + // so a subsequent login doesn't inherit the previous user's playback state. + if (userId) clearPersistedQueue(userId); + playQueue([]); + closeQueueDrawer(); }