Skip to content

feat(sdk): show a consent tooltip and add a disableIntent prop - #1925

Merged
rohanchkrabrty merged 5 commits into
mainfrom
fix-add-auth-button-tooltip
Sep 11, 2026
Merged

feat(sdk): show a consent tooltip and add a disableIntent prop#1925
rohanchkrabrty merged 5 commits into
mainfrom
fix-add-auth-button-tooltip

Conversation

@rohanchkrabrty

@rohanchkrabrty rohanchkrabrty commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

Summary

  • While the consent checkbox is unchecked, hovering a disabled OIDC button or either "Continue with Email" button in the sign-up view shows a "You must agree to continue" tooltip, via a new shared DisabledTooltip component.
  • The tooltip wrapper returns its child untouched unless the control is disabled with a message, and anchors at the top-end of the button.
  • The magic-link email input stays enabled while consent is pending, so an address can be typed before agreeing; only the submit button is blocked.
  • SignInView and SignUpView gain a disableIntent prop. When set, they send no flow intent so the server keeps its create-or-get behaviour instead of gating on account existence, the opt-out described in RFC 0002. Consent handling is unchanged since it is enforced under every intent.
  • SignUpView gains a disabledContentMessage prop that overrides the tooltip copy on the disabled sign-up buttons.

While the consent checkbox is unchecked, hovering the disabled OIDC
button or either "Continue with Email" button in the sign-up view shows
"You must agree to continue", anchored to the top-end of the button.

Claude-Session: https://claude.ai/code/session_01SwGUtD3mDrTjM1rLWnxrnA
Only the submit button is blocked until the consent checkbox is
checked, so the input keeps its normal appearance and the email can
be typed before agreeing.

Claude-Session: https://claude.ai/code/session_01SwGUtD3mDrTjM1rLWnxrnA
Return the child untouched unless the control is disabled with a
message, drop the now redundant trigger and content guards, and anchor
the tooltip at the top-right corner of the button.

Claude-Session: https://claude.ai/code/session_01SwGUtD3mDrTjM1rLWnxrnA
When set, the views send no flow intent on the OIDC buttons and the
email form, so the server keeps its create-or-get behaviour instead of
gating on whether the account exists. The consent checkbox and the
accepted document ids are unchanged, since consent is enforced under
every intent.
@vercel

vercel Bot commented Sep 9, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
frontier Ready Ready Preview Sep 11, 2026 9:43am UTC

@coderabbitai

coderabbitai Bot commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

Review Change StackReview Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Advanced

Run ID: 9b3d79db-740f-4076-993f-826f9d9beec1

📥 Commits

Reviewing files that changed from the base of the PR and between 2fad065 and 7db1c99.

📒 Files selected for processing (1)
  • web/sdk/client/views/auth/sign-up/sign-up-view.tsx

Included review availability: Your plan provides up to 2 included reviews per hour; 1 remains after this review.


📝 Summary

Summary by CodeRabbit

  • New Features
    • Disabled email and OIDC authentication buttons can now display explanatory tooltips.
    • Sign-up actions show a consent-required message when applicable, with support for customized messaging.
    • Authentication views support flexible sign-in and sign-up flow handling when a specific intent is unavailable.
    • Added reusable tooltip support for disabled controls, including configurable placement and messaging.

Walkthrough

The change adds a reusable disabled-state tooltip. OIDC and magic-link controls use configured messages. Sign-in and sign-up views can send an unspecified flow intent instead of fixed login or signup intents.

Changes

Authentication flow updates

Layer / File(s) Summary
Disabled tooltip foundation
web/sdk/client/components/disabled-tooltip/*
Adds DisabledTooltip, its props type, barrel export, and flex trigger styling.
Disabled authentication controls
web/sdk/client/components/auth-oidc-button/auth-oidc-button.tsx, web/sdk/client/views/auth/magic-link/magic-link-view.tsx
Adds optional disabled messages and wraps disabled OIDC and email-login buttons with DisabledTooltip.
Configurable authentication intent
web/sdk/client/views/auth/sign-in/sign-in-view.tsx, web/sdk/client/views/auth/sign-up/sign-up-view.tsx
Adds disableIntent, derives FlowIntent.UNSPECIFIED when enabled, passes the computed intent to authentication and magic-link flows, and supplies the configurable disabled message in sign-up.

Priority: ⬇️ Low

Estimated code review effort: 3 (Moderate) | ~20 minutes

Change: Feature

Merge Risk: 🔵 Low · up to 7db1c

The authentication flows remain usable, but some users may receive inaccessible, misplaced, or misleading consent guidance from disabled controls. Merge is reasonable with follow-up on these bounded UI issues.

🚥 Pre-merge checks | ✅ 2
✅ Passed checks (2 passed)
Check name Status Explanation
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coveralls

coveralls commented Sep 9, 2026

Copy link
Copy Markdown

Coverage Report for CI Build 34585613579

Coverage remained the same at 50.229%

Details

  • Coverage remained the same as the base build.
  • Patch coverage: No coverable lines changed in this PR.
  • No coverage regressions found.

Uncovered Changes

No uncovered changes found.

Coverage Regressions

No coverage regressions found.


Coverage Stats

Coverage Status
Relevant Lines: 41106
Covered Lines: 20647
Line Coverage: 50.23%
Coverage Strength: 16.0 hits per line

💛 - Coveralls

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3


ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Advanced

Run ID: d7c420fe-439b-42af-8c82-0899c61702a6

📥 Commits

Reviewing files that changed from the base of the PR and between 1c282de and 2fad065.

📒 Files selected for processing (7)
  • web/sdk/client/components/auth-oidc-button/auth-oidc-button.tsx
  • web/sdk/client/components/disabled-tooltip/disabled-tooltip.module.css
  • web/sdk/client/components/disabled-tooltip/disabled-tooltip.tsx
  • web/sdk/client/components/disabled-tooltip/index.ts
  • web/sdk/client/views/auth/magic-link/magic-link-view.tsx
  • web/sdk/client/views/auth/sign-in/sign-in-view.tsx
  • web/sdk/client/views/auth/sign-up/sign-up-view.tsx

Included review availability: Your plan provides up to 2 included reviews per hour; 1 remains after this review.

Comment thread web/sdk/client/components/disabled-tooltip/disabled-tooltip.tsx
Comment thread web/sdk/client/components/disabled-tooltip/disabled-tooltip.tsx
Comment thread web/sdk/client/views/auth/sign-up/sign-up-view.tsx Outdated
Add a disabledContentMessage prop that replaces the "You must agree to
continue" text shown on the disabled OIDC and email buttons while the
consent checkbox is unchecked. The default copy is unchanged.
@rohanchkrabrty
rohanchkrabrty enabled auto-merge (squash) September 11, 2026 10:00
@rohanchkrabrty
rohanchkrabrty merged commit 26667e5 into main Sep 11, 2026
8 checks passed
@rohanchkrabrty
rohanchkrabrty deleted the fix-add-auth-button-tooltip branch September 11, 2026 10:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants