Skip to content

fix(ui): add clerk dependency to redirect effect hooks - #7529

Merged
jacekradko merged 1 commit into
clerk:mainfrom
Ayush2k02:fix/signin-signup-redirect-issue
Jan 5, 2026
Merged

fix(ui): add clerk dependency to redirect effect hooks#7529
jacekradko merged 1 commit into
clerk:mainfrom
Ayush2k02:fix/signin-signup-redirect-issue

Conversation

@Ayush2k02

@Ayush2k02Ayush2k02 commented Dec 26, 2025

Copy link
Copy Markdown
Contributor

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, they interfere with each other's navigation flows, causing unexpected redirects to the Clerk domain.

Root Cause

The RedirectToSignIn and RedirectToSignUp components had incomplete dependency arrays in their useEffect hooks:

React.useEffect(()=>{voidclerk.redirectToSignUp();},[]);// ❌ Missing 'clerk' dependency

This violates React's exhaustive-deps rule and can cause unpredictable behavior.

Solution

Added clerk to the dependency arrays:

React.useEffect(()=>{voidclerk.redirectToSignUp();},[clerk]);// ✅ Proper dependency tracking

Changes

Notes

Related to issue #7456

Summary by CodeRabbit

  • Bug Fixes
    • Fixed redirect conflicts when SignIn and SignUp components are rendered on the same page, preventing unintended redirects during authentication flows.

✏️ Tip: You can customize this high-level summary in your review settings.

Fixes redirect conflicts when SignIn and SignUp components are used
together on the same page by adding proper dependency arrays to
useEffect hooks in RedirectToSignIn and RedirectToSignUp components.
@changeset-bot

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: d710ede

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 2 packages
NameType
@clerk/uiPatch
@clerk/chrome-extensionPatch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@vercel

vercelBot commented Dec 26, 2025

Copy link
Copy Markdown

@Ayush2k02 is attempting to deploy a commit to the Clerk Production Team on Vercel.

A member of the Team first needs to authorize it.

@Ayush2k02

Copy link
Copy Markdown
ContributorAuthor

Testing Limitation

I've verified that the fix addresses the exact issue identified in #7456 (specifically the useEffect hook at packages/ui/src/components/SignUp/index.tsx#L19).

However, I'm unable to fully test this fix locally because:

  1. The published @clerk/clerk-react package loads UI components dynamically from Clerk's CDN at runtime
  2. The fix is in the @clerk/ui package source code, which needs to be deployed to Clerk's CDN to be effective
  3. Testing with the reproduction repository (https://github.com/ernestoalejo/clerk-signup-reproduction) still shows the redirect issue because it uses the published npm package that doesn't include this fix

What I've Verified

✅ The fix is applied to the exact location identified by the issue reporter
✅ Added clerk to the dependency arrays in both RedirectToSignIn and RedirectToSignUp components
✅ This prevents the useEffect from running on every render, which was causing the redirect conflicts
✅ Created proper changeset documentation

The fix will be testable once merged and deployed to Clerk's CDN.

@Ayush2k02
Ayush2k02 marked this pull request as ready for review December 26, 2025 07:21
@coderabbitai

coderabbitaiBot commented Dec 26, 2025

Copy link
Copy Markdown
Contributor
📝 Walkthrough

Walkthrough

The PR bumps the patch version for @clerk/ui and fixes redirect conflicts occurring when SignIn and SignUp components render on the same page. The fix adds the clerk dependency to the useEffect dependency arrays in the redirect logic of both SignIn and SignUp components. Previously, these hooks had empty dependency arrays, causing them to run only on mount. With this change, the redirect effects now re-run when the clerk reference changes.

Possibly related issues

Pre-merge checks

❌ Failed checks (1 warning)
Check nameStatusExplanationResolution
Docstring Coverage⚠️ WarningDocstring coverage is 0.00% which is insufficient. The required threshold is 80.00%.You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (2 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title accurately and specifically describes the main change: adding clerk dependency to redirect effect hooks in the SignIn and SignUp components.

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 and usage tips.

@jacekradkojacekradko changed the title fix(ui): add clerk dependency to redirect useEffect hooksfix(ui): add clerk dependency to redirect effect hooksJan 5, 2026

@jacekradkojacekradko 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.

Thanks for your contribution @Ayush2k02

@jacekradko
jacekradko merged commit c51027c into clerk:mainJan 5, 2026
15 of 20 checks passed
@Ayush2k02

Copy link
Copy Markdown
ContributorAuthor

YAY

jacekradko added a commit that referenced this pull request Jan 16, 2026
fix(ui): add clerk dependency to redirect effect hooks [core-2 backport]
Backport of #7529 to release/core-2.
Fixes redirect conflicts when SignIn and SignUp components are used together on the same page by adding proper dependency arrays to useEffect hooks.
Co-authored-by: Ayush Amawate <97389618+Ayush2k02@users.noreply.github.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@Ayush2k02@jacekradko
, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
fix(ui): add clerk dependency to redirect effect hooks by Ayush2k02 · Pull Request #7529 · clerk/javascript · GitHub
Skip to content

fix(ui): add clerk dependency to redirect effect hooks - #7529

Merged
jacekradko merged 1 commit into
clerk:mainfrom
Ayush2k02:fix/signin-signup-redirect-issue
Jan 5, 2026
Merged

fix(ui): add clerk dependency to redirect effect hooks#7529
jacekradko merged 1 commit into
clerk:mainfrom
Ayush2k02:fix/signin-signup-redirect-issue

Conversation

@Ayush2k02

@Ayush2k02Ayush2k02 commented Dec 26, 2025

Copy link
Copy Markdown
Contributor

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, they interfere with each other's navigation flows, causing unexpected redirects to the Clerk domain.

Root Cause

The RedirectToSignIn and RedirectToSignUp components had incomplete dependency arrays in their useEffect hooks:

React.useEffect(()=>{voidclerk.redirectToSignUp();},[]);// ❌ Missing 'clerk' dependency

This violates React's exhaustive-deps rule and can cause unpredictable behavior.

Solution

Added clerk to the dependency arrays:

React.useEffect(()=>{voidclerk.redirectToSignUp();},[clerk]);// ✅ Proper dependency tracking

Changes

Notes

Related to issue #7456

Summary by CodeRabbit

  • Bug Fixes
    • Fixed redirect conflicts when SignIn and SignUp components are rendered on the same page, preventing unintended redirects during authentication flows.

✏️ Tip: You can customize this high-level summary in your review settings.

Fixes redirect conflicts when SignIn and SignUp components are used
together on the same page by adding proper dependency arrays to
useEffect hooks in RedirectToSignIn and RedirectToSignUp components.
@changeset-bot

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: d710ede

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 2 packages
NameType
@clerk/uiPatch
@clerk/chrome-extensionPatch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@vercel

vercelBot commented Dec 26, 2025

Copy link
Copy Markdown

@Ayush2k02 is attempting to deploy a commit to the Clerk Production Team on Vercel.

A member of the Team first needs to authorize it.

@Ayush2k02

Copy link
Copy Markdown
ContributorAuthor

Testing Limitation

I've verified that the fix addresses the exact issue identified in #7456 (specifically the useEffect hook at packages/ui/src/components/SignUp/index.tsx#L19).

However, I'm unable to fully test this fix locally because:

  1. The published @clerk/clerk-react package loads UI components dynamically from Clerk's CDN at runtime
  2. The fix is in the @clerk/ui package source code, which needs to be deployed to Clerk's CDN to be effective
  3. Testing with the reproduction repository (https://github.com/ernestoalejo/clerk-signup-reproduction) still shows the redirect issue because it uses the published npm package that doesn't include this fix

What I've Verified

✅ The fix is applied to the exact location identified by the issue reporter
✅ Added clerk to the dependency arrays in both RedirectToSignIn and RedirectToSignUp components
✅ This prevents the useEffect from running on every render, which was causing the redirect conflicts
✅ Created proper changeset documentation

The fix will be testable once merged and deployed to Clerk's CDN.

@Ayush2k02
Ayush2k02 marked this pull request as ready for review December 26, 2025 07:21
@coderabbitai

coderabbitaiBot commented Dec 26, 2025

Copy link
Copy Markdown
Contributor
📝 Walkthrough

Walkthrough

The PR bumps the patch version for @clerk/ui and fixes redirect conflicts occurring when SignIn and SignUp components render on the same page. The fix adds the clerk dependency to the useEffect dependency arrays in the redirect logic of both SignIn and SignUp components. Previously, these hooks had empty dependency arrays, causing them to run only on mount. With this change, the redirect effects now re-run when the clerk reference changes.

Possibly related issues

Pre-merge checks

❌ Failed checks (1 warning)
Check nameStatusExplanationResolution
Docstring Coverage⚠️ WarningDocstring coverage is 0.00% which is insufficient. The required threshold is 80.00%.You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (2 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title accurately and specifically describes the main change: adding clerk dependency to redirect effect hooks in the SignIn and SignUp components.

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 and usage tips.

@jacekradkojacekradko changed the title fix(ui): add clerk dependency to redirect useEffect hooksfix(ui): add clerk dependency to redirect effect hooksJan 5, 2026

@jacekradkojacekradko 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.

Thanks for your contribution @Ayush2k02

@jacekradko
jacekradko merged commit c51027c into clerk:mainJan 5, 2026
15 of 20 checks passed
@Ayush2k02

Copy link
Copy Markdown
ContributorAuthor

YAY

jacekradko added a commit that referenced this pull request Jan 16, 2026
fix(ui): add clerk dependency to redirect effect hooks [core-2 backport]
Backport of #7529 to release/core-2.
Fixes redirect conflicts when SignIn and SignUp components are used together on the same page by adding proper dependency arrays to useEffect hooks.
Co-authored-by: Ayush Amawate <97389618+Ayush2k02@users.noreply.github.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@Ayush2k02@jacekradko
, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' fix(ui): add clerk dependency to redirect effect hooks by Ayush2k02 · Pull Request #7529 · clerk/javascript · GitHub
Skip to content

fix(ui): add clerk dependency to redirect effect hooks - #7529

Merged
jacekradko merged 1 commit into
clerk:mainfrom
Ayush2k02:fix/signin-signup-redirect-issue
Jan 5, 2026
Merged

fix(ui): add clerk dependency to redirect effect hooks#7529
jacekradko merged 1 commit into
clerk:mainfrom
Ayush2k02:fix/signin-signup-redirect-issue

Conversation

@Ayush2k02

@Ayush2k02Ayush2k02 commented Dec 26, 2025

Copy link
Copy Markdown
Contributor

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, they interfere with each other's navigation flows, causing unexpected redirects to the Clerk domain.

Root Cause

The RedirectToSignIn and RedirectToSignUp components had incomplete dependency arrays in their useEffect hooks:

React.useEffect(()=>{voidclerk.redirectToSignUp();},[]);// ❌ Missing 'clerk' dependency

This violates React's exhaustive-deps rule and can cause unpredictable behavior.

Solution

Added clerk to the dependency arrays:

React.useEffect(()=>{voidclerk.redirectToSignUp();},[clerk]);// ✅ Proper dependency tracking

Changes

Notes

Related to issue #7456

Summary by CodeRabbit

  • Bug Fixes
    • Fixed redirect conflicts when SignIn and SignUp components are rendered on the same page, preventing unintended redirects during authentication flows.

✏️ Tip: You can customize this high-level summary in your review settings.

Fixes redirect conflicts when SignIn and SignUp components are used
together on the same page by adding proper dependency arrays to
useEffect hooks in RedirectToSignIn and RedirectToSignUp components.
@changeset-bot

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: d710ede

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 2 packages
NameType
@clerk/uiPatch
@clerk/chrome-extensionPatch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@vercel

vercelBot commented Dec 26, 2025

Copy link
Copy Markdown

@Ayush2k02 is attempting to deploy a commit to the Clerk Production Team on Vercel.

A member of the Team first needs to authorize it.

@Ayush2k02

Copy link
Copy Markdown
ContributorAuthor

Testing Limitation

I've verified that the fix addresses the exact issue identified in #7456 (specifically the useEffect hook at packages/ui/src/components/SignUp/index.tsx#L19).

However, I'm unable to fully test this fix locally because:

  1. The published @clerk/clerk-react package loads UI components dynamically from Clerk's CDN at runtime
  2. The fix is in the @clerk/ui package source code, which needs to be deployed to Clerk's CDN to be effective
  3. Testing with the reproduction repository (https://github.com/ernestoalejo/clerk-signup-reproduction) still shows the redirect issue because it uses the published npm package that doesn't include this fix

What I've Verified

✅ The fix is applied to the exact location identified by the issue reporter
✅ Added clerk to the dependency arrays in both RedirectToSignIn and RedirectToSignUp components
✅ This prevents the useEffect from running on every render, which was causing the redirect conflicts
✅ Created proper changeset documentation

The fix will be testable once merged and deployed to Clerk's CDN.

@Ayush2k02
Ayush2k02 marked this pull request as ready for review December 26, 2025 07:21
@coderabbitai

coderabbitaiBot commented Dec 26, 2025

Copy link
Copy Markdown
Contributor
📝 Walkthrough

Walkthrough

The PR bumps the patch version for @clerk/ui and fixes redirect conflicts occurring when SignIn and SignUp components render on the same page. The fix adds the clerk dependency to the useEffect dependency arrays in the redirect logic of both SignIn and SignUp components. Previously, these hooks had empty dependency arrays, causing them to run only on mount. With this change, the redirect effects now re-run when the clerk reference changes.

Possibly related issues

Pre-merge checks

❌ Failed checks (1 warning)
Check nameStatusExplanationResolution
Docstring Coverage⚠️ WarningDocstring coverage is 0.00% which is insufficient. The required threshold is 80.00%.You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (2 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title accurately and specifically describes the main change: adding clerk dependency to redirect effect hooks in the SignIn and SignUp components.

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 and usage tips.

@jacekradkojacekradko changed the title fix(ui): add clerk dependency to redirect useEffect hooksfix(ui): add clerk dependency to redirect effect hooksJan 5, 2026

@jacekradkojacekradko 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.

Thanks for your contribution @Ayush2k02

@jacekradko
jacekradko merged commit c51027c into clerk:mainJan 5, 2026
15 of 20 checks passed
@Ayush2k02

Copy link
Copy Markdown
ContributorAuthor

YAY

jacekradko added a commit that referenced this pull request Jan 16, 2026
fix(ui): add clerk dependency to redirect effect hooks [core-2 backport]
Backport of #7529 to release/core-2.
Fixes redirect conflicts when SignIn and SignUp components are used together on the same page by adding proper dependency arrays to useEffect hooks.
Co-authored-by: Ayush Amawate <97389618+Ayush2k02@users.noreply.github.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@Ayush2k02@jacekradko
, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' fix(ui): add clerk dependency to redirect effect hooks by Ayush2k02 · Pull Request #7529 · clerk/javascript · GitHub
Skip to content

fix(ui): add clerk dependency to redirect effect hooks - #7529

Merged
jacekradko merged 1 commit into
clerk:mainfrom
Ayush2k02:fix/signin-signup-redirect-issue
Jan 5, 2026
Merged

fix(ui): add clerk dependency to redirect effect hooks#7529
jacekradko merged 1 commit into
clerk:mainfrom
Ayush2k02:fix/signin-signup-redirect-issue

Conversation

@Ayush2k02

@Ayush2k02Ayush2k02 commented Dec 26, 2025

Copy link
Copy Markdown
Contributor

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, they interfere with each other's navigation flows, causing unexpected redirects to the Clerk domain.

Root Cause

The RedirectToSignIn and RedirectToSignUp components had incomplete dependency arrays in their useEffect hooks:

React.useEffect(()=>{voidclerk.redirectToSignUp();},[]);// ❌ Missing 'clerk' dependency

This violates React's exhaustive-deps rule and can cause unpredictable behavior.

Solution

Added clerk to the dependency arrays:

React.useEffect(()=>{voidclerk.redirectToSignUp();},[clerk]);// ✅ Proper dependency tracking

Changes

Notes

Related to issue #7456

Summary by CodeRabbit

  • Bug Fixes
    • Fixed redirect conflicts when SignIn and SignUp components are rendered on the same page, preventing unintended redirects during authentication flows.

✏️ Tip: You can customize this high-level summary in your review settings.

Fixes redirect conflicts when SignIn and SignUp components are used
together on the same page by adding proper dependency arrays to
useEffect hooks in RedirectToSignIn and RedirectToSignUp components.
@changeset-bot

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: d710ede

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 2 packages
NameType
@clerk/uiPatch
@clerk/chrome-extensionPatch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@vercel

vercelBot commented Dec 26, 2025

Copy link
Copy Markdown

@Ayush2k02 is attempting to deploy a commit to the Clerk Production Team on Vercel.

A member of the Team first needs to authorize it.

@Ayush2k02

Copy link
Copy Markdown
ContributorAuthor

Testing Limitation

I've verified that the fix addresses the exact issue identified in #7456 (specifically the useEffect hook at packages/ui/src/components/SignUp/index.tsx#L19).

However, I'm unable to fully test this fix locally because:

  1. The published @clerk/clerk-react package loads UI components dynamically from Clerk's CDN at runtime
  2. The fix is in the @clerk/ui package source code, which needs to be deployed to Clerk's CDN to be effective
  3. Testing with the reproduction repository (https://github.com/ernestoalejo/clerk-signup-reproduction) still shows the redirect issue because it uses the published npm package that doesn't include this fix

What I've Verified

✅ The fix is applied to the exact location identified by the issue reporter
✅ Added clerk to the dependency arrays in both RedirectToSignIn and RedirectToSignUp components
✅ This prevents the useEffect from running on every render, which was causing the redirect conflicts
✅ Created proper changeset documentation

The fix will be testable once merged and deployed to Clerk's CDN.

@Ayush2k02
Ayush2k02 marked this pull request as ready for review December 26, 2025 07:21
@coderabbitai

coderabbitaiBot commented Dec 26, 2025

Copy link
Copy Markdown
Contributor
📝 Walkthrough

Walkthrough

The PR bumps the patch version for @clerk/ui and fixes redirect conflicts occurring when SignIn and SignUp components render on the same page. The fix adds the clerk dependency to the useEffect dependency arrays in the redirect logic of both SignIn and SignUp components. Previously, these hooks had empty dependency arrays, causing them to run only on mount. With this change, the redirect effects now re-run when the clerk reference changes.

Possibly related issues

Pre-merge checks

❌ Failed checks (1 warning)
Check nameStatusExplanationResolution
Docstring Coverage⚠️ WarningDocstring coverage is 0.00% which is insufficient. The required threshold is 80.00%.You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (2 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title accurately and specifically describes the main change: adding clerk dependency to redirect effect hooks in the SignIn and SignUp components.

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 and usage tips.

@jacekradkojacekradko changed the title fix(ui): add clerk dependency to redirect useEffect hooksfix(ui): add clerk dependency to redirect effect hooksJan 5, 2026

@jacekradkojacekradko 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.

Thanks for your contribution @Ayush2k02

@jacekradko
jacekradko merged commit c51027c into clerk:mainJan 5, 2026
15 of 20 checks passed
@Ayush2k02

Copy link
Copy Markdown
ContributorAuthor

YAY

jacekradko added a commit that referenced this pull request Jan 16, 2026
fix(ui): add clerk dependency to redirect effect hooks [core-2 backport]
Backport of #7529 to release/core-2.
Fixes redirect conflicts when SignIn and SignUp components are used together on the same page by adding proper dependency arrays to useEffect hooks.
Co-authored-by: Ayush Amawate <97389618+Ayush2k02@users.noreply.github.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@Ayush2k02@jacekradko
, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' fix(ui): add clerk dependency to redirect effect hooks by Ayush2k02 · Pull Request #7529 · clerk/javascript · GitHub
Skip to content

fix(ui): add clerk dependency to redirect effect hooks - #7529

Merged
jacekradko merged 1 commit into
clerk:mainfrom
Ayush2k02:fix/signin-signup-redirect-issue
Jan 5, 2026
Merged

fix(ui): add clerk dependency to redirect effect hooks#7529
jacekradko merged 1 commit into
clerk:mainfrom
Ayush2k02:fix/signin-signup-redirect-issue

Conversation

@Ayush2k02

@Ayush2k02Ayush2k02 commented Dec 26, 2025

Copy link
Copy Markdown
Contributor

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, they interfere with each other's navigation flows, causing unexpected redirects to the Clerk domain.

Root Cause

The RedirectToSignIn and RedirectToSignUp components had incomplete dependency arrays in their useEffect hooks:

React.useEffect(()=>{voidclerk.redirectToSignUp();},[]);// ❌ Missing 'clerk' dependency

This violates React's exhaustive-deps rule and can cause unpredictable behavior.

Solution

Added clerk to the dependency arrays:

React.useEffect(()=>{voidclerk.redirectToSignUp();},[clerk]);// ✅ Proper dependency tracking

Changes

Notes

Related to issue #7456

Summary by CodeRabbit

  • Bug Fixes
    • Fixed redirect conflicts when SignIn and SignUp components are rendered on the same page, preventing unintended redirects during authentication flows.

✏️ Tip: You can customize this high-level summary in your review settings.

Fixes redirect conflicts when SignIn and SignUp components are used
together on the same page by adding proper dependency arrays to
useEffect hooks in RedirectToSignIn and RedirectToSignUp components.
@changeset-bot

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: d710ede

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 2 packages
NameType
@clerk/uiPatch
@clerk/chrome-extensionPatch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@vercel

vercelBot commented Dec 26, 2025

Copy link
Copy Markdown

@Ayush2k02 is attempting to deploy a commit to the Clerk Production Team on Vercel.

A member of the Team first needs to authorize it.

@Ayush2k02

Copy link
Copy Markdown
ContributorAuthor

Testing Limitation

I've verified that the fix addresses the exact issue identified in #7456 (specifically the useEffect hook at packages/ui/src/components/SignUp/index.tsx#L19).

However, I'm unable to fully test this fix locally because:

  1. The published @clerk/clerk-react package loads UI components dynamically from Clerk's CDN at runtime
  2. The fix is in the @clerk/ui package source code, which needs to be deployed to Clerk's CDN to be effective
  3. Testing with the reproduction repository (https://github.com/ernestoalejo/clerk-signup-reproduction) still shows the redirect issue because it uses the published npm package that doesn't include this fix

What I've Verified

✅ The fix is applied to the exact location identified by the issue reporter
✅ Added clerk to the dependency arrays in both RedirectToSignIn and RedirectToSignUp components
✅ This prevents the useEffect from running on every render, which was causing the redirect conflicts
✅ Created proper changeset documentation

The fix will be testable once merged and deployed to Clerk's CDN.

@Ayush2k02
Ayush2k02 marked this pull request as ready for review December 26, 2025 07:21
@coderabbitai

coderabbitaiBot commented Dec 26, 2025

Copy link
Copy Markdown
Contributor
📝 Walkthrough

Walkthrough

The PR bumps the patch version for @clerk/ui and fixes redirect conflicts occurring when SignIn and SignUp components render on the same page. The fix adds the clerk dependency to the useEffect dependency arrays in the redirect logic of both SignIn and SignUp components. Previously, these hooks had empty dependency arrays, causing them to run only on mount. With this change, the redirect effects now re-run when the clerk reference changes.

Possibly related issues

Pre-merge checks

❌ Failed checks (1 warning)
Check nameStatusExplanationResolution
Docstring Coverage⚠️ WarningDocstring coverage is 0.00% which is insufficient. The required threshold is 80.00%.You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (2 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title accurately and specifically describes the main change: adding clerk dependency to redirect effect hooks in the SignIn and SignUp components.

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 and usage tips.

@jacekradkojacekradko changed the title fix(ui): add clerk dependency to redirect useEffect hooksfix(ui): add clerk dependency to redirect effect hooksJan 5, 2026

@jacekradkojacekradko 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.

Thanks for your contribution @Ayush2k02

@jacekradko
jacekradko merged commit c51027c into clerk:mainJan 5, 2026
15 of 20 checks passed
@Ayush2k02

Copy link
Copy Markdown
ContributorAuthor

YAY

jacekradko added a commit that referenced this pull request Jan 16, 2026
fix(ui): add clerk dependency to redirect effect hooks [core-2 backport]
Backport of #7529 to release/core-2.
Fixes redirect conflicts when SignIn and SignUp components are used together on the same page by adding proper dependency arrays to useEffect hooks.
Co-authored-by: Ayush Amawate <97389618+Ayush2k02@users.noreply.github.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@Ayush2k02@jacekradko
, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' fix(ui): add clerk dependency to redirect effect hooks by Ayush2k02 · Pull Request #7529 · clerk/javascript · GitHub
Skip to content

fix(ui): add clerk dependency to redirect effect hooks - #7529

Merged
jacekradko merged 1 commit into
clerk:mainfrom
Ayush2k02:fix/signin-signup-redirect-issue
Jan 5, 2026
Merged

fix(ui): add clerk dependency to redirect effect hooks#7529
jacekradko merged 1 commit into
clerk:mainfrom
Ayush2k02:fix/signin-signup-redirect-issue

Conversation

@Ayush2k02

@Ayush2k02Ayush2k02 commented Dec 26, 2025

Copy link
Copy Markdown
Contributor

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, they interfere with each other's navigation flows, causing unexpected redirects to the Clerk domain.

Root Cause

The RedirectToSignIn and RedirectToSignUp components had incomplete dependency arrays in their useEffect hooks:

React.useEffect(()=>{voidclerk.redirectToSignUp();},[]);// ❌ Missing 'clerk' dependency

This violates React's exhaustive-deps rule and can cause unpredictable behavior.

Solution

Added clerk to the dependency arrays:

React.useEffect(()=>{voidclerk.redirectToSignUp();},[clerk]);// ✅ Proper dependency tracking

Changes

Notes

Related to issue #7456

Summary by CodeRabbit

  • Bug Fixes
    • Fixed redirect conflicts when SignIn and SignUp components are rendered on the same page, preventing unintended redirects during authentication flows.

✏️ Tip: You can customize this high-level summary in your review settings.

Fixes redirect conflicts when SignIn and SignUp components are used
together on the same page by adding proper dependency arrays to
useEffect hooks in RedirectToSignIn and RedirectToSignUp components.
@changeset-bot

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: d710ede

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 2 packages
NameType
@clerk/uiPatch
@clerk/chrome-extensionPatch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@vercel

vercelBot commented Dec 26, 2025

Copy link
Copy Markdown

@Ayush2k02 is attempting to deploy a commit to the Clerk Production Team on Vercel.

A member of the Team first needs to authorize it.

@Ayush2k02

Copy link
Copy Markdown
ContributorAuthor

Testing Limitation

I've verified that the fix addresses the exact issue identified in #7456 (specifically the useEffect hook at packages/ui/src/components/SignUp/index.tsx#L19).

However, I'm unable to fully test this fix locally because:

  1. The published @clerk/clerk-react package loads UI components dynamically from Clerk's CDN at runtime
  2. The fix is in the @clerk/ui package source code, which needs to be deployed to Clerk's CDN to be effective
  3. Testing with the reproduction repository (https://github.com/ernestoalejo/clerk-signup-reproduction) still shows the redirect issue because it uses the published npm package that doesn't include this fix

What I've Verified

✅ The fix is applied to the exact location identified by the issue reporter
✅ Added clerk to the dependency arrays in both RedirectToSignIn and RedirectToSignUp components
✅ This prevents the useEffect from running on every render, which was causing the redirect conflicts
✅ Created proper changeset documentation

The fix will be testable once merged and deployed to Clerk's CDN.

@Ayush2k02
Ayush2k02 marked this pull request as ready for review December 26, 2025 07:21
@coderabbitai

coderabbitaiBot commented Dec 26, 2025

Copy link
Copy Markdown
Contributor
📝 Walkthrough

Walkthrough

The PR bumps the patch version for @clerk/ui and fixes redirect conflicts occurring when SignIn and SignUp components render on the same page. The fix adds the clerk dependency to the useEffect dependency arrays in the redirect logic of both SignIn and SignUp components. Previously, these hooks had empty dependency arrays, causing them to run only on mount. With this change, the redirect effects now re-run when the clerk reference changes.

Possibly related issues

Pre-merge checks

❌ Failed checks (1 warning)
Check nameStatusExplanationResolution
Docstring Coverage⚠️ WarningDocstring coverage is 0.00% which is insufficient. The required threshold is 80.00%.You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (2 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title accurately and specifically describes the main change: adding clerk dependency to redirect effect hooks in the SignIn and SignUp components.

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 and usage tips.

@jacekradkojacekradko changed the title fix(ui): add clerk dependency to redirect useEffect hooksfix(ui): add clerk dependency to redirect effect hooksJan 5, 2026

@jacekradkojacekradko 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.

Thanks for your contribution @Ayush2k02

@jacekradko
jacekradko merged commit c51027c into clerk:mainJan 5, 2026
15 of 20 checks passed
@Ayush2k02

Copy link
Copy Markdown
ContributorAuthor

YAY

jacekradko added a commit that referenced this pull request Jan 16, 2026
fix(ui): add clerk dependency to redirect effect hooks [core-2 backport]
Backport of #7529 to release/core-2.
Fixes redirect conflicts when SignIn and SignUp components are used together on the same page by adding proper dependency arrays to useEffect hooks.
Co-authored-by: Ayush Amawate <97389618+Ayush2k02@users.noreply.github.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@Ayush2k02@jacekradko
, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' fix(ui): add clerk dependency to redirect effect hooks by Ayush2k02 · Pull Request #7529 · clerk/javascript · GitHub
Skip to content

fix(ui): add clerk dependency to redirect effect hooks - #7529

Merged
jacekradko merged 1 commit into
clerk:mainfrom
Ayush2k02:fix/signin-signup-redirect-issue
Jan 5, 2026
Merged

fix(ui): add clerk dependency to redirect effect hooks#7529
jacekradko merged 1 commit into
clerk:mainfrom
Ayush2k02:fix/signin-signup-redirect-issue

Conversation

@Ayush2k02

@Ayush2k02Ayush2k02 commented Dec 26, 2025

Copy link
Copy Markdown
Contributor

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, they interfere with each other's navigation flows, causing unexpected redirects to the Clerk domain.

Root Cause

The RedirectToSignIn and RedirectToSignUp components had incomplete dependency arrays in their useEffect hooks:

React.useEffect(()=>{voidclerk.redirectToSignUp();},[]);// ❌ Missing 'clerk' dependency

This violates React's exhaustive-deps rule and can cause unpredictable behavior.

Solution

Added clerk to the dependency arrays:

React.useEffect(()=>{voidclerk.redirectToSignUp();},[clerk]);// ✅ Proper dependency tracking

Changes

Notes

Related to issue #7456

Summary by CodeRabbit

  • Bug Fixes
    • Fixed redirect conflicts when SignIn and SignUp components are rendered on the same page, preventing unintended redirects during authentication flows.

✏️ Tip: You can customize this high-level summary in your review settings.

Fixes redirect conflicts when SignIn and SignUp components are used
together on the same page by adding proper dependency arrays to
useEffect hooks in RedirectToSignIn and RedirectToSignUp components.
@changeset-bot

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: d710ede

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 2 packages
NameType
@clerk/uiPatch
@clerk/chrome-extensionPatch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@vercel

vercelBot commented Dec 26, 2025

Copy link
Copy Markdown

@Ayush2k02 is attempting to deploy a commit to the Clerk Production Team on Vercel.

A member of the Team first needs to authorize it.

@Ayush2k02

Copy link
Copy Markdown
ContributorAuthor

Testing Limitation

I've verified that the fix addresses the exact issue identified in #7456 (specifically the useEffect hook at packages/ui/src/components/SignUp/index.tsx#L19).

However, I'm unable to fully test this fix locally because:

  1. The published @clerk/clerk-react package loads UI components dynamically from Clerk's CDN at runtime
  2. The fix is in the @clerk/ui package source code, which needs to be deployed to Clerk's CDN to be effective
  3. Testing with the reproduction repository (https://github.com/ernestoalejo/clerk-signup-reproduction) still shows the redirect issue because it uses the published npm package that doesn't include this fix

What I've Verified

✅ The fix is applied to the exact location identified by the issue reporter
✅ Added clerk to the dependency arrays in both RedirectToSignIn and RedirectToSignUp components
✅ This prevents the useEffect from running on every render, which was causing the redirect conflicts
✅ Created proper changeset documentation

The fix will be testable once merged and deployed to Clerk's CDN.

@Ayush2k02
Ayush2k02 marked this pull request as ready for review December 26, 2025 07:21
@coderabbitai

coderabbitaiBot commented Dec 26, 2025

Copy link
Copy Markdown
Contributor
📝 Walkthrough

Walkthrough

The PR bumps the patch version for @clerk/ui and fixes redirect conflicts occurring when SignIn and SignUp components render on the same page. The fix adds the clerk dependency to the useEffect dependency arrays in the redirect logic of both SignIn and SignUp components. Previously, these hooks had empty dependency arrays, causing them to run only on mount. With this change, the redirect effects now re-run when the clerk reference changes.

Possibly related issues

Pre-merge checks

❌ Failed checks (1 warning)
Check nameStatusExplanationResolution
Docstring Coverage⚠️ WarningDocstring coverage is 0.00% which is insufficient. The required threshold is 80.00%.You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (2 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title accurately and specifically describes the main change: adding clerk dependency to redirect effect hooks in the SignIn and SignUp components.

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 and usage tips.

@jacekradkojacekradko changed the title fix(ui): add clerk dependency to redirect useEffect hooksfix(ui): add clerk dependency to redirect effect hooksJan 5, 2026

@jacekradkojacekradko 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.

Thanks for your contribution @Ayush2k02

@jacekradko
jacekradko merged commit c51027c into clerk:mainJan 5, 2026
15 of 20 checks passed
@Ayush2k02

Copy link
Copy Markdown
ContributorAuthor

YAY

jacekradko added a commit that referenced this pull request Jan 16, 2026
fix(ui): add clerk dependency to redirect effect hooks [core-2 backport]
Backport of #7529 to release/core-2.
Fixes redirect conflicts when SignIn and SignUp components are used together on the same page by adding proper dependency arrays to useEffect hooks.
Co-authored-by: Ayush Amawate <97389618+Ayush2k02@users.noreply.github.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@Ayush2k02@jacekradko
, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); fix(ui): add clerk dependency to redirect effect hooks by Ayush2k02 · Pull Request #7529 · clerk/javascript · GitHub
Skip to content

fix(ui): add clerk dependency to redirect effect hooks - #7529

Merged
jacekradko merged 1 commit into
clerk:mainfrom
Ayush2k02:fix/signin-signup-redirect-issue
Jan 5, 2026
Merged

fix(ui): add clerk dependency to redirect effect hooks#7529
jacekradko merged 1 commit into
clerk:mainfrom
Ayush2k02:fix/signin-signup-redirect-issue

Conversation

@Ayush2k02

@Ayush2k02Ayush2k02 commented Dec 26, 2025

Copy link
Copy Markdown
Contributor

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, they interfere with each other's navigation flows, causing unexpected redirects to the Clerk domain.

Root Cause

The RedirectToSignIn and RedirectToSignUp components had incomplete dependency arrays in their useEffect hooks:

React.useEffect(()=>{voidclerk.redirectToSignUp();},[]);// ❌ Missing 'clerk' dependency

This violates React's exhaustive-deps rule and can cause unpredictable behavior.

Solution

Added clerk to the dependency arrays:

React.useEffect(()=>{voidclerk.redirectToSignUp();},[clerk]);// ✅ Proper dependency tracking

Changes

Notes

Related to issue #7456

Summary by CodeRabbit

  • Bug Fixes
    • Fixed redirect conflicts when SignIn and SignUp components are rendered on the same page, preventing unintended redirects during authentication flows.

✏️ Tip: You can customize this high-level summary in your review settings.

Fixes redirect conflicts when SignIn and SignUp components are used
together on the same page by adding proper dependency arrays to
useEffect hooks in RedirectToSignIn and RedirectToSignUp components.
@changeset-bot

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: d710ede

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 2 packages
NameType
@clerk/uiPatch
@clerk/chrome-extensionPatch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@vercel

vercelBot commented Dec 26, 2025

Copy link
Copy Markdown

@Ayush2k02 is attempting to deploy a commit to the Clerk Production Team on Vercel.

A member of the Team first needs to authorize it.

@Ayush2k02

Copy link
Copy Markdown
ContributorAuthor

Testing Limitation

I've verified that the fix addresses the exact issue identified in #7456 (specifically the useEffect hook at packages/ui/src/components/SignUp/index.tsx#L19).

However, I'm unable to fully test this fix locally because:

  1. The published @clerk/clerk-react package loads UI components dynamically from Clerk's CDN at runtime
  2. The fix is in the @clerk/ui package source code, which needs to be deployed to Clerk's CDN to be effective
  3. Testing with the reproduction repository (https://github.com/ernestoalejo/clerk-signup-reproduction) still shows the redirect issue because it uses the published npm package that doesn't include this fix

What I've Verified

✅ The fix is applied to the exact location identified by the issue reporter
✅ Added clerk to the dependency arrays in both RedirectToSignIn and RedirectToSignUp components
✅ This prevents the useEffect from running on every render, which was causing the redirect conflicts
✅ Created proper changeset documentation

The fix will be testable once merged and deployed to Clerk's CDN.

@Ayush2k02
Ayush2k02 marked this pull request as ready for review December 26, 2025 07:21
@coderabbitai

coderabbitaiBot commented Dec 26, 2025

Copy link
Copy Markdown
Contributor
📝 Walkthrough

Walkthrough

The PR bumps the patch version for @clerk/ui and fixes redirect conflicts occurring when SignIn and SignUp components render on the same page. The fix adds the clerk dependency to the useEffect dependency arrays in the redirect logic of both SignIn and SignUp components. Previously, these hooks had empty dependency arrays, causing them to run only on mount. With this change, the redirect effects now re-run when the clerk reference changes.

Possibly related issues

Pre-merge checks

❌ Failed checks (1 warning)
Check nameStatusExplanationResolution
Docstring Coverage⚠️ WarningDocstring coverage is 0.00% which is insufficient. The required threshold is 80.00%.You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (2 passed)
Check nameStatusExplanation
Description Check✅ PassedCheck skipped - CodeRabbit’s high-level summary is enabled.
Title check✅ PassedThe title accurately and specifically describes the main change: adding clerk dependency to redirect effect hooks in the SignIn and SignUp components.

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 and usage tips.

@jacekradkojacekradko changed the title fix(ui): add clerk dependency to redirect useEffect hooksfix(ui): add clerk dependency to redirect effect hooksJan 5, 2026

@jacekradkojacekradko 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.

Thanks for your contribution @Ayush2k02

@jacekradko
jacekradko merged commit c51027c into clerk:mainJan 5, 2026
15 of 20 checks passed
@Ayush2k02

Copy link
Copy Markdown
ContributorAuthor

YAY

jacekradko added a commit that referenced this pull request Jan 16, 2026
fix(ui): add clerk dependency to redirect effect hooks [core-2 backport]
Backport of #7529 to release/core-2.
Fixes redirect conflicts when SignIn and SignUp components are used together on the same page by adding proper dependency arrays to useEffect hooks.
Co-authored-by: Ayush Amawate <97389618+Ayush2k02@users.noreply.github.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@Ayush2k02@jacekradko