diff --git a/src/renderer/src/components/status-bar/use-workspace-space-manager-projection.ts b/src/renderer/src/components/status-bar/use-workspace-space-manager-projection.ts index 3226767a81d..4c3a9dfede2 100644 --- a/src/renderer/src/components/status-bar/use-workspace-space-manager-projection.ts +++ b/src/renderer/src/components/status-bar/use-workspace-space-manager-projection.ts @@ -2,13 +2,13 @@ import { useCallback, useEffect, useMemo } from 'react' import { filterWorkspaceSpaceRows, getLargestWorkspaceSpaceRowSize, - getWorkspaceSpaceGitStatusRefreshCandidates, isWorkspaceSpaceRowReadyToDelete, pruneWorkspaceSpaceSelectedIds, resolveWorkspaceSpaceInspectedWorktreeId, resolveWorkspaceSpaceTreemapZoomWorktreeId, sortWorkspaceSpaceRows } from './workspace-space-presentation' +import { getWorkspaceSpaceGitStatusRefreshCandidates } from './workspace-space-git-status-order' import { getSelectedDeletableWorkspaceRows, getVisibleDeletableWorkspaceIdentities, @@ -30,6 +30,8 @@ export function useWorkspaceSpaceManagerProjection(args: { refreshWorkspaceGitStatus: ReturnType }) { const { + activeWorktreeId, + activeWorkspaceExecutionHostId, analysis, inspectedWorktreeId, isScanning, @@ -117,7 +119,12 @@ export function useWorkspaceSpaceManagerProjection(args: { ]) useEffect(() => { - const candidates = getWorkspaceSpaceGitStatusRefreshCandidates(sourceRows) + const visibleWorktreeIdentities = new Set(rows.map(getWorkspaceSpaceWorktreeIdentity)) + const candidates = getWorkspaceSpaceGitStatusRefreshCandidates(sourceRows, { + activeWorktreeId, + activeExecutionHostId: activeWorkspaceExecutionHostId, + visibleWorktreeIdentities + }) if (candidates.length === 0) { return } @@ -140,7 +147,13 @@ export function useWorkspaceSpaceManagerProjection(args: { return () => { cancelled = true } - }, [refreshWorkspaceGitStatus, sourceRows]) + }, [ + activeWorktreeId, + activeWorkspaceExecutionHostId, + refreshWorkspaceGitStatus, + rows, + sourceRows + ]) const inspectedWorktree = rows.find((row) => getWorkspaceSpaceWorktreeIdentity(row) === nextInspectedWorktreeId) ?? diff --git a/src/renderer/src/components/status-bar/workspace-space-presentation.test.ts b/src/renderer/src/components/status-bar/workspace-space-presentation.test.ts index 50c8a5a6ff6..e0d3a868fa7 100644 --- a/src/renderer/src/components/status-bar/workspace-space-presentation.test.ts +++ b/src/renderer/src/components/status-bar/workspace-space-presentation.test.ts @@ -11,7 +11,6 @@ import { filterWorkspaceSpaceRows, getLargestWorkspaceSpaceItemSize, getLargestWorkspaceSpaceRowSize, - getWorkspaceSpaceGitStatusRefreshCandidates, isWorkspaceSpaceFilterQueryTooLarge, isWorkspaceSpaceRowReadyToDelete, pruneWorkspaceSpaceSelectedIds, @@ -19,6 +18,7 @@ import { resolveWorkspaceSpaceTreemapZoomWorktreeId, sortWorkspaceSpaceRows } from './workspace-space-presentation' +import { getWorkspaceSpaceGitStatusRefreshCandidates } from './workspace-space-git-status-order' import { getWorkspaceDecisionDetails } from './WorkspaceSpaceManagerPanel' import { getWorkspaceSpaceDeleteState,