From 36a79f258638f7cd91fe34473a48f57748c88ae1 Mon Sep 17 00:00:00 2001 From: 777genius Date: Tue, 14 Apr 2026 17:10:23 +0300 Subject: [PATCH] fix: keep selected project visible in session selector --- .../sidebar/DateGroupedSessions.tsx | 47 +++++++++++-------- 1 file changed, 27 insertions(+), 20 deletions(-) diff --git a/src/renderer/components/sidebar/DateGroupedSessions.tsx b/src/renderer/components/sidebar/DateGroupedSessions.tsx index b2d99211..082afb0b 100644 --- a/src/renderer/components/sidebar/DateGroupedSessions.tsx +++ b/src/renderer/components/sidebar/DateGroupedSessions.tsx @@ -301,12 +301,36 @@ export const DateGroupedSessions = (): React.JSX.Element => { fetchProjects, ]); + const effectiveSelectedWorktreeId = + selectedWorktreeId ?? activeProjectId ?? selectedProjectId ?? null; + const effectiveSelectedRepositoryId = useMemo( + () => + resolveEffectiveSelectedRepositoryId({ + repositoryGroups, + selectedRepositoryId, + effectiveSelectedWorktreeId, + }), + [effectiveSelectedWorktreeId, repositoryGroups, selectedRepositoryId] + ); + + const activeProjectValue = + viewMode === 'grouped' + ? effectiveSelectedRepositoryId + : (activeProjectId ?? selectedProjectId ?? null); + // Project combobox options const projectComboboxOptions = useMemo((): ComboboxOption[] => { const items = viewMode === 'grouped' - ? repositoryGroups.filter((r) => r.totalSessions > 0) - : projects.filter((p) => (p.totalSessions ?? p.sessions.length) > 0); + ? repositoryGroups.filter( + (repo) => repo.totalSessions > 0 || repo.id === effectiveSelectedRepositoryId + ) + : projects.filter( + (project) => + (project.totalSessions ?? project.sessions.length) > 0 || + project.id === activeProjectValue + ); + return items.map((item) => { const sessionCount = viewMode === 'grouped' @@ -324,24 +348,7 @@ export const DateGroupedSessions = (): React.JSX.Element => { meta: { sessionCount, path }, }; }); - }, [viewMode, repositoryGroups, projects]); - - const effectiveSelectedWorktreeId = - selectedWorktreeId ?? activeProjectId ?? selectedProjectId ?? null; - const effectiveSelectedRepositoryId = useMemo( - () => - resolveEffectiveSelectedRepositoryId({ - repositoryGroups, - selectedRepositoryId, - effectiveSelectedWorktreeId, - }), - [effectiveSelectedWorktreeId, repositoryGroups, selectedRepositoryId] - ); - - const activeProjectValue = - viewMode === 'grouped' - ? effectiveSelectedRepositoryId - : (activeProjectId ?? selectedProjectId ?? null); + }, [activeProjectValue, effectiveSelectedRepositoryId, projects, repositoryGroups, viewMode]); const handleProjectValueChange = (id: string): void => { if (viewMode === 'grouped') selectRepository(id);