fix: show collapsed sidebar activity indicators (#2116)

* fix: show collapsed sidebar activity indicators

* test: cover collapsed sidebar activity rollups

* style(ui): unify collapsed activity indicator

---------

Co-authored-by: Iuliia Ivashko <yulia.ivashko@gmail.com>
This commit is contained in:
Pascal André
2026-07-29 20:36:32 +03:00
committed by GitHub
co-authored by Iuliia Ivashko
parent 4c7b87bb21
commit 76b2ab2588
6 changed files with 257 additions and 2 deletions
@@ -303,6 +303,15 @@ const SessionSidebarComponent: React.FC<SessionSidebarProps> = ({
(state) => isVisible ? [...state.statusById.keys()].sort() : EMPTY_STRING_ARRAY,
));
const activeSessionIdSet = React.useMemo(() => new Set(activeSessionIds), [activeSessionIds]);
const unreadSessionIds = useNotificationStore(useShallow(
(state) => isVisible
? Object.entries(state.index.session.unseenCount)
.filter(([, count]) => count > 0)
.map(([sessionId]) => sessionId)
.sort()
: EMPTY_STRING_ARRAY,
));
const unreadSessionIdSet = React.useMemo(() => new Set(unreadSessionIds), [unreadSessionIds]);
const togglePinnedSession = useSessionPinnedStore((state) => state.toggle);
const [collapsedGroups, setCollapsedGroups] = React.useState<Set<string>>(() => {
try {
@@ -1656,6 +1665,9 @@ const SessionSidebarComponent: React.FC<SessionSidebarProps> = ({
editingId={editingId}
editTitle={editTitle}
openSidebarMenuKey={openSidebarMenuKey}
activeActivitySessionIds={activeSessionIdSet}
unreadActivitySessionIds={unreadSessionIdSet}
notifyOnSubtasks={notifyOnSubtasks}
onToggleCollapsedGroup={toggleCollapsedGroup}
scrollContainerRef={scrollContainerRef}
/>
@@ -1692,6 +1704,9 @@ const SessionSidebarComponent: React.FC<SessionSidebarProps> = ({
editingId,
editTitle,
openSidebarMenuKey,
activeSessionIdSet,
unreadSessionIdSet,
notifyOnSubtasks,
toggleCollapsedGroup,
],
);