fix: project picker dropdown highlights first item instead of current project

This commit is contained in:
Illia Filippov
2025-12-23 00:50:21 +01:00
parent 524a9736b4
commit e70c3b7722
2 changed files with 10 additions and 2 deletions

View File

@@ -69,6 +69,7 @@ export function ProjectSelectorWithOptions({
filteredProjects, filteredProjects,
} = useProjectPicker({ } = useProjectPicker({
projects, projects,
currentProject,
isProjectPickerOpen, isProjectPickerOpen,
setIsProjectPickerOpen, setIsProjectPickerOpen,
setCurrentProject, setCurrentProject,

View File

@@ -3,6 +3,7 @@ import type { Project } from '@/lib/electron';
interface UseProjectPickerProps { interface UseProjectPickerProps {
projects: Project[]; projects: Project[];
currentProject: Project | null;
isProjectPickerOpen: boolean; isProjectPickerOpen: boolean;
setIsProjectPickerOpen: (value: boolean | ((prev: boolean) => boolean)) => void; setIsProjectPickerOpen: (value: boolean | ((prev: boolean) => boolean)) => void;
setCurrentProject: (project: Project) => void; setCurrentProject: (project: Project) => void;
@@ -10,6 +11,7 @@ interface UseProjectPickerProps {
export function useProjectPicker({ export function useProjectPicker({
projects, projects,
currentProject,
isProjectPickerOpen, isProjectPickerOpen,
setIsProjectPickerOpen, setIsProjectPickerOpen,
setCurrentProject, setCurrentProject,
@@ -32,13 +34,18 @@ export function useProjectPicker({
setSelectedProjectIndex(0); setSelectedProjectIndex(0);
}, [filteredProjects.length, projectSearchQuery]); }, [filteredProjects.length, projectSearchQuery]);
// Reset search query when dropdown closes // Reset search query when dropdown closes, set to current project index when it opens
useEffect(() => { useEffect(() => {
if (!isProjectPickerOpen) { if (!isProjectPickerOpen) {
setProjectSearchQuery(''); setProjectSearchQuery('');
setSelectedProjectIndex(0); setSelectedProjectIndex(0);
} else if (currentProject) {
const currentIndex = filteredProjects.findIndex((p) => p.id === currentProject.id);
if (currentIndex !== -1) {
setSelectedProjectIndex(currentIndex);
}
} }
}, [isProjectPickerOpen]); }, [isProjectPickerOpen, currentProject, filteredProjects]);
// Focus the search input when dropdown opens // Focus the search input when dropdown opens
useEffect(() => { useEffect(() => {