Skip to content

feat: accept a login box footer in login() (FR-27245) - #138

Merged
dianaKhortiuk-frontegg merged 2 commits into
masterfrom
claude/fr-27245-login-box-footer
Oct 8, 2026
Merged

dianaKhortiuk-frontegg merged 2 commits into
masterfrom
claude/fr-27245-login-box-footer

Conversation

@dianaKhortiuk-frontegg

@dianaKhortiuk-frontegg dianaKhortiuk-frontegg commented Oct 8, 2026 •

Copy link
Copy Markdown
Collaborator

FR-27245. Supersedes #136 and builds on @airowe's commit from it, which is kept as-is. It lives on a frontegg branch so it can be stacked on #137, which bumps the native SDKs to the versions that have the footer API.

What

login() accepts a footer in its customization options and passes it to the native SDKs:

The hosted login box renders it (frontegg/oauth-service#884) on its sign-in and password screens. The native SDKs sanitize the links and handle taps:

  • An http(s) link opens in the browser.
  • An app-scheme link closes the box and hands the URL to the app.

Omitting footer, or passing null, clears it.

The follow-up commit only corrects the docs: the footer shows on the sign-in and password screens, not the first screen only.

Tests

  • src/__tests__/index.test.tsx: the footer is forwarded, and it is cleared when omitted. 15 tests pass locally.
  • yarn lint and yarn typecheck are clean.

🤖 Generated with Claude Code


Note

Low Risk
Additive optional API on the existing login customization path; behavior for link handling and rendering lives in pinned native SDKs rather than new auth logic in this PR.

Overview
Adds an optional footer to login() customization so embedded login can show structured content below the card (sign-in and password screens), mirroring @frontegg/react's boxFooter.

The JS layer defines LoginBoxFooter (rows of text/link segments, optional hideCaptchaBadge), always sends footer with theme/localization overrides (omitted → null to clear), and routes through loginWithOptions when present. iOS and Android bridges persist the payload on loginBoxFooter alongside existing login-box customization. Docs document the shape, link rules (http(s) vs app scheme), and reCAPTCHA attribution expectations. Tests assert forwarding and per-call clearing behavior.

Reviewed by Cursor Bugbot for commit f54b30a. Bugbot is set up for automated code reviews on this repo. Configure here.

airowe and others added 2 commits October 8, 2026 14:38
`login({ footer })` forwards a structured footer to the native SDKs, which
render it below the login box's card on its login screen only: the
embedded-mode equivalent of `boxFooter` in @frontegg/react.

Like `themeOptions` and `localizations`, an omitted footer is sent as null
and clears, so each call fully determines the box's appearance.
…ord screens

The hosted login box (frontegg/oauth-service#884) renders the host footer
on both the preLogin and loginWithPassword steps, not only the first one.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit f54b30a. Configure here.

Comment thread src/FronteggNative.ts
* a row naming reCAPTCHA and linking Google's Privacy Policy and Terms.
*/
hideCaptchaBadge?: boolean;
rows: LoginBoxFooterRow[];

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Footer types missing from public API

Low Severity

LoginBoxFooter, LoginBoxFooterRow, and LoginBoxFooterSegment are exported from FronteggNative.ts and documented as the footer type, but src/index.tsx does not re-export them. Consumers of @frontegg/react-native cannot import those names, unlike LoginBoxCustomization and LoginOptions.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit f54b30a. Configure here.

@dianaKhortiuk-frontegg
dianaKhortiuk-frontegg changed the base branch from chore/bump-native-sdks-1.3.23-1.3.42 to master October 8, 2026 14:22
@dianaKhortiuk-frontegg
dianaKhortiuk-frontegg merged commit 7e8b881 into master Oct 8, 2026
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.

2 participants