diff --git a/frontend/src/app/components/OnboardingV3/beats/BeatConnect.tsx b/frontend/src/app/components/OnboardingV3/beats/BeatConnect.tsx index 3e35db89..c1fd1429 100644 --- a/frontend/src/app/components/OnboardingV3/beats/BeatConnect.tsx +++ b/frontend/src/app/components/OnboardingV3/beats/BeatConnect.tsx @@ -67,8 +67,6 @@ const BeatConnect: React.FC<{ // Which provider rows are live, so the tab itself shows "Connected", not a floating label below. const connections = useAppSelector(selectSubscriptionConnections); const connectedIds = new Set(connections.filter((cx) => cx.isActive !== false).map((cx) => cx.provider)); - const identityFor = (pid: string): ProviderIdentity | undefined => - identity.find((id) => id.provider === pid) ?? (pid === 'antigravity' ? identity.find((id) => id.provider === 'gemini') : undefined); // The whole flow leans on a real connection (identity, chat-history read, personalized reveal), so // there is no skip: Continue stays locked until a provider is connected or the free trial is armed. const canContinue = connected || freeTrial; @@ -89,7 +87,6 @@ const BeatConnect: React.FC<{ {SUBSCRIPTION_PROVIDERS.map((p, i) => { const isThis = connecting === p.id; const isConnected = connectedIds.has(p.id); - const ident = isConnected ? identityFor(p.id) : undefined; return ( {p.name} - {isConnected - ? Connected{ident?.email ? ` as ${ident.email}` : ''} - : isThis && !connected - ? waiting for sign-in... - : null} + {/* The green ring + filled radio already signal connected, so no redundant "Connected" text. */} + {!isConnected && isThis && !connected + ? waiting for sign-in... + : null} {/* Arc's icon tile: a full-height soft-tinted zone on the row's right edge, real brand mark inside. */}