diff --git a/packages/client/ui-workspace/src/client/navigation.ts b/packages/client/ui-workspace/src/client/navigation.ts index 6d86beb826..c968595d8a 100644 --- a/packages/client/ui-workspace/src/client/navigation.ts +++ b/packages/client/ui-workspace/src/client/navigation.ts @@ -138,10 +138,11 @@ class UiWorkspaceService extends Service implements UiWorkspace { async openWorkspace(workspaceId: WorkspaceId, beforeOpen?: (sessionId: SessionId) => void): Promise { const navigation = AbortSignal.any([this.ctx.layout.beginNavigation(), this.lifetime.signal]) + const isCurrent = (): boolean => !navigation.aborted const sessionId = await this.connectWorkspace(workspaceId) - if (navigation.aborted) return + if (!isCurrent()) return beforeOpen?.(sessionId) - if (!navigation.aborted) this.openSession(sessionId) + if (isCurrent()) this.openSession(sessionId) } async forkSession(sessionId: SessionId): Promise {