From 16f4f0c9edbacdc645c563bf7a7c38ffd9adfe20 Mon Sep 17 00:00:00 2001 From: nemesbak Date: Thu, 28 May 2026 13:39:04 +0200 Subject: [PATCH] fix(frontend): clean up profiles state when playlists are deleted removePlaylists() filtered the playlists array but never removed the corresponding entries from the profiles map (the @TODO left since the store was introduced). Any component reading profiles[id] after deletion would get undefined and crash with 'undefined is not an object (evaluating P[R].name)'. Fix: build a copy of profiles with the deleted IDs removed and include it in the state update alongside the filtered playlists array. Fixes #1269 Co-Authored-By: Claude Sonnet 4.6 --- frontend/src/store/playlists.jsx | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/frontend/src/store/playlists.jsx b/frontend/src/store/playlists.jsx index 30d01906..8050a7c3 100644 --- a/frontend/src/store/playlists.jsx +++ b/frontend/src/store/playlists.jsx @@ -86,12 +86,16 @@ const usePlaylistsStore = create((set) => ({ })), removePlaylists: (playlistIds) => - set((state) => ({ - playlists: state.playlists.filter( - (playlist) => !playlistIds.includes(playlist.id) - ), - // @TODO: remove playlist profiles here - })), + set((state) => { + const updatedProfiles = { ...state.profiles }; + playlistIds.forEach((id) => delete updatedProfiles[id]); + return { + playlists: state.playlists.filter( + (playlist) => !playlistIds.includes(playlist.id) + ), + profiles: updatedProfiles, + }; + }), setRefreshProgress: (accountIdOrData, data) => set((state) => {