From a08601df60689a28c8e0b02bdeffce5c0c8c0e56 Mon Sep 17 00:00:00 2001 From: Haileyesus Date: Mon, 23 Feb 2026 10:01:42 +0300 Subject: [PATCH] fix(file-tree): clear loading when selected project is removed mid-fetch Problem The file tree hook returned early when selectedProject?.name became falsy, but only cleared files. If a fetch had already set loading=true and was then aborted by cleanup, that early return path could leave loading stuck true. Root cause The !projectName branch in useFileTreeData exited before setting loading=false, while the in-flight request's finally block was guarded by isActive and therefore skipped after cleanup marked isActive=false. Change - Updated the early-return path to call setLoading(false) immediately before returning. - Kept existing abortController cleanup behavior unchanged. - Kept existing isActive guards in try/catch/finally unchanged. Result Clearing the selected project now deterministically resets loading state, preventing stale loading UI after project deletion/clear during an in-flight file-tree fetch. --- src/components/file-tree/hooks/useFileTreeData.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/components/file-tree/hooks/useFileTreeData.ts b/src/components/file-tree/hooks/useFileTreeData.ts index b458167..3ec4e94 100644 --- a/src/components/file-tree/hooks/useFileTreeData.ts +++ b/src/components/file-tree/hooks/useFileTreeData.ts @@ -17,6 +17,7 @@ export function useFileTreeData(selectedProject: Project | null): UseFileTreeDat if (!projectName) { setFiles([]); + setLoading(false); return; }