Skip to content

Version 10.0.0 beta04 - #2453

Merged
thatfiredev merged 10 commits into
masterfrom
version-10.0.0-beta04
Aug 24, 2026
Merged

Version 10.0.0 beta04#2453
thatfiredev merged 10 commits into
masterfrom
version-10.0.0-beta04

Conversation

@thatfiredev

@thatfiredev thatfiredev commented Aug 24, 2026

Copy link
Copy Markdown
Member

This replaces #2384 which was unmergeable due to force-pushes.

EDIT: Replacing the PR didn't fix the ability to merge.

⚠️ Breaking Changes

Changes

just1and0 and others added 10 commits August 24, 2026 10:13
…e with tooltip. BREAKING - Removed unused `newAccountsDisabledTooltip` from public interface `AuthUIStringProvider` (#2397)
…#2425)

* fix(auth): pre-fill email when "Continue as" button is tapped (#2423)

The "Continue as..." button displayed the saved identifier but
discarded it on click, sending the user to a blank email form.
Add an onContinueAsSelected callback to AuthMethodPicker that
carries the identifier through to EmailAuthScreen, which now
initializes the email field with the saved address.

* fix(auth): only pre-fill email for Email provider, not phone/other

* fix(auth): move new parameters to end of signature to preserve API compat

* fix(auth): address review feedback for prefill email feature

- Update kDoc to say "email address" instead of "phone number" since
  phone pre-fill is not wired up in this PR
- Add SignInUITest with assertions for email pre-fill behavior

* test(auth): cover AuthMethodPicker Continue-as button and onContinueAsSelected callback

---------

Co-authored-by: demolaf <demolafadumo@gmail.com>

@gemini-code-assist gemini-code-assist 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.

Code Review

This pull request refactors the authentication flow lifecycle and state management in FirebaseUI Auth. It introduces a new AuthState.Aborted state to distinguish between full-flow cancellations and operation-level cancellations (AuthState.Cancelled), ensuring the UI remains open when a user backs out of a single provider. Additionally, phone verification is refactored from a single-shot suspending function to a Flow-based stream to handle multi-shot callbacks properly, and transient states are marked with an isNotification flag to prevent them from leaking to new screens. Feedback on the changes suggests resetting all mode-specific state flags (emailSignInLinkSentLocal and resetLinkSentLocal) when navigating between email authentication modes to avoid stale UI states.

Comment on lines 368 to 382
onGoToSignIn = {
textValues.forEach { it.value = "" }
mode.value = EmailAuthMode.SignIn
emailSignInLinkSentLocal = false
},
onGoToResetPassword = {
textValues.forEach { it.value = "" }
mode.value = EmailAuthMode.ResetPassword
resetLinkSentLocal = false
},
onGoToEmailLinkSignIn = {
textValues.forEach { it.value = "" }
mode.value = EmailAuthMode.EmailLinkSignIn
emailSignInLinkSentLocal = false
},

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.

medium

When switching between email authentication modes (Sign In, Sign Up, Reset Password, Email Link), it's safer to reset all mode-specific state flags (emailSignInLinkSentLocal and resetLinkSentLocal). Currently, you only reset the flag relevant to the source mode, which could lead to stale UI state if the user navigates back and forth between different flows. Resetting both flags in each navigation callback ensures a clean state.

        onGoToSignIn = {
            textValues.forEach { it.value = "" }
            mode.value = EmailAuthMode.SignIn
            emailSignInLinkSentLocal = false
            resetLinkSentLocal = false
        },
        onGoToResetPassword = {
            textValues.forEach { it.value = "" }
            mode.value = EmailAuthMode.ResetPassword
            emailSignInLinkSentLocal = false
            resetLinkSentLocal = false
        },
        onGoToEmailLinkSignIn = {
            textValues.forEach { it.value = "" }
            mode.value = EmailAuthMode.EmailLinkSignIn
            emailSignInLinkSentLocal = false
            resetLinkSentLocal = false
        },

@thatfiredev
thatfiredev merged commit 03cdd58 into master Aug 24, 2026
32 checks passed
@github-project-automation github-project-automation Bot moved this from Backlog to Done in studio-2394994192-60a69 Aug 24, 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.

3 participants