From 7b3b6cc8be72887c3d7cf1c14c3235037a41d817 Mon Sep 17 00:00:00 2001 From: Faisal Amir Date: Tue, 22 Jul 2025 19:51:59 +0700 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9Bfix:=20delete=20all=20should=20not?= =?UTF-8?q?=20include=20fav=20thread=20(#5864)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- web-app/src/hooks/useThreads.ts | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/web-app/src/hooks/useThreads.ts b/web-app/src/hooks/useThreads.ts index e81b48e8e..e66cc6056 100644 --- a/web-app/src/hooks/useThreads.ts +++ b/web-app/src/hooks/useThreads.ts @@ -109,12 +109,32 @@ export const useThreads = create()((set, get) => ({ deleteAllThreads: () => { set((state) => { const allThreadIds = Object.keys(state.threads) - allThreadIds.forEach((threadId) => { + const favoriteThreadIds = allThreadIds.filter( + (threadId) => state.threads[threadId].isFavorite + ) + const nonFavoriteThreadIds = allThreadIds.filter( + (threadId) => !state.threads[threadId].isFavorite + ) + + // Only delete non-favorite threads + nonFavoriteThreadIds.forEach((threadId) => { deleteThread(threadId) }) + + // Keep only favorite threads + const remainingThreads = favoriteThreadIds.reduce( + (acc, threadId) => { + acc[threadId] = state.threads[threadId] + return acc + }, + {} as Record + ) + return { - threads: {}, - searchIndex: null, // Or new Fzf([], {selector...}) + threads: remainingThreads, + searchIndex: new Fzf(Object.values(remainingThreads), { + selector: (item: Thread) => item.title, + }), } }) },