From a398367f00ba7472318a0929ae47c635b8f2bf87 Mon Sep 17 00:00:00 2001 From: Illia Filippov Date: Tue, 23 Dec 2025 02:06:49 +0100 Subject: [PATCH] refactor: simplify project index retrieval and selection logic in project picker --- .../layout/sidebar/hooks/use-project-picker.ts | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/apps/ui/src/components/layout/sidebar/hooks/use-project-picker.ts b/apps/ui/src/components/layout/sidebar/hooks/use-project-picker.ts index 0ce4ec16..c8cf0d23 100644 --- a/apps/ui/src/components/layout/sidebar/hooks/use-project-picker.ts +++ b/apps/ui/src/components/layout/sidebar/hooks/use-project-picker.ts @@ -29,9 +29,9 @@ export function useProjectPicker({ return projects.filter((project) => project.name.toLowerCase().includes(query)); }, [projects, projectSearchQuery]); - const getCurrentProjectIndex = useCallback(() => { + const getCurrentProjectIndex = () => { return currentProject ? filteredProjects.findIndex((p) => p.id === currentProject.id) : -1; - }, [currentProject, filteredProjects]); + }; // Reset selection when filtered results change useEffect(() => { @@ -42,8 +42,9 @@ export function useProjectPicker({ return; } } + setSelectedProjectIndex(0); - }, [filteredProjects.length, projectSearchQuery]); + }, [filteredProjects.length, projectSearchQuery, currentProject]); // Reset search query when dropdown closes, set to current project index when it opens useEffect(() => { @@ -51,16 +52,13 @@ export function useProjectPicker({ setProjectSearchQuery(''); setSelectedProjectIndex(0); } else { + // Set the selected project index to the current project index const currentIndex = getCurrentProjectIndex(); if (currentIndex !== -1) { setSelectedProjectIndex(currentIndex); } - } - }, [isProjectPickerOpen, currentProject]); - // Focus the search input when dropdown opens - useEffect(() => { - if (isProjectPickerOpen) { + // Focus the search input when dropdown opens // Small delay to ensure the dropdown is rendered setTimeout(() => { projectSearchInputRef.current?.focus();