fix(ui): prevent redirect conflicts between SignIn and SignUp components #7528
+51
−2
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
Fixes redirect conflicts when SignIn and SignUp components are used together on the same page.
Problem
When both
<SignIn />and<SignUp />components are rendered on the same page (e.g., as tabs in a modal), they interfere with each other's navigation flows. Specifically:/factor-oneRedirectToSignUp()Root Cause
The
RedirectToSignInandRedirectToSignUpcomponents in both SignIn/index.tsx:40-46 and SignUp/index.tsx:21-27 had incomplete dependency arrays:React's exhaustive-deps rule requires including all dependencies used inside useEffect. Without
clerkin the dependency array, the effect doesn't properly track when it should run, leading to unexpected behavior when multiple components share the same router context.Solution
Added
clerkto the dependency arrays in both redirect components:This ensures the redirect only happens when the clerk instance changes, preventing unwanted redirects during navigation in other component flows.
Changes
RedirectToSignInin SignIn/index.tsxRedirectToSignUpin SignUp/index.tsxTesting
This fix allows:
Notes
Related to issue #7456