diff --git a/src/renderer/src/components/activity/ActivityPrototypePage.tsx b/src/renderer/src/components/activity/ActivityPrototypePage.tsx index 3ca7b1ffa8b..4ee1e7c8be6 100644 --- a/src/renderer/src/components/activity/ActivityPrototypePage.tsx +++ b/src/renderer/src/components/activity/ActivityPrototypePage.tsx @@ -55,7 +55,10 @@ import { reconcileActivityPortalThreads, resolveActivityPortalSwap } from './activity-portal-thread-reconciliation' -import { createActivityPortalReadinessLatch } from './activity-portal-readiness-oscillation' +import { + createActivityPortalReadinessLatch, + type ActivityPortalReadinessStatus +} from './activity-portal-readiness-oscillation' import type { Repo, TerminalTab, Worktree } from '../../../../shared/types' import { FLOATING_TERMINAL_WORKTREE_ID } from '../../../../shared/constants' import { @@ -136,7 +139,7 @@ type ActivityThreadGroup = { type ActivityTerminalPortalReadiness = { target: HTMLElement | null paneKey: string | null - status: 'loading' | 'ready' | 'unavailable' + status: ActivityPortalReadinessStatus } type ActivityTerminalPortalDomStatus = { @@ -363,7 +366,6 @@ export function useActivityTerminalPortalStatus( updateReadiness('loading') } - updateReadiness('loading') checkReadiness() const observer = new MutationObserver(checkReadiness) diff --git a/src/renderer/src/components/activity/activity-portal-readiness-subscription-churn.react185.test.tsx b/src/renderer/src/components/activity/activity-portal-readiness-subscription-churn.react185.test.tsx index 9867f076538..ff3a085dc79 100644 --- a/src/renderer/src/components/activity/activity-portal-readiness-subscription-churn.react185.test.tsx +++ b/src/renderer/src/components/activity/activity-portal-readiness-subscription-churn.react185.test.tsx @@ -72,7 +72,7 @@ describe('Activity portal readiness subscription churn', () => { expect(renders).toBeLessThanOrEqual(31) await act(async () => { - await new Promise((resolve) => setTimeout(resolve, 30)) + await new Promise((resolve) => requestAnimationFrame(() => resolve())) }) expect(status).toBe('unavailable') expect(renders).toBeLessThanOrEqual(32)