mirror of
https://github.com/AutoMaker-Org/automaker.git
synced 2026-02-03 08:53:36 +00:00
fix: project picker dropdown highlights first item instead of current project
This commit is contained in:
@@ -69,6 +69,7 @@ export function ProjectSelectorWithOptions({
|
|||||||
filteredProjects,
|
filteredProjects,
|
||||||
} = useProjectPicker({
|
} = useProjectPicker({
|
||||||
projects,
|
projects,
|
||||||
|
currentProject,
|
||||||
isProjectPickerOpen,
|
isProjectPickerOpen,
|
||||||
setIsProjectPickerOpen,
|
setIsProjectPickerOpen,
|
||||||
setCurrentProject,
|
setCurrentProject,
|
||||||
|
|||||||
@@ -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(() => {
|
||||||
|
|||||||
Reference in New Issue
Block a user