') + ')', '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('^' + ".*" + ', '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" + ', '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('^' + ".*" + ', '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); } })(); })(); fix(clerk-js): Re-initialize Client singleton instance on Client destroy (#1913) by clerk-cookie · Pull Request #2016 · clerk/javascript · GitHub
Skip to content

fix(clerk-js): Re-initialize Client singleton instance on Client destroy (#1913) - #2016

Merged
octoper merged 1 commit into
release/v4from
backport-release/v4-1913
Nov 2, 2023
Merged

fix(clerk-js): Re-initialize Client singleton instance on Client destroy (#1913)#2016
octoper merged 1 commit into
release/v4from
backport-release/v4-1913

Conversation

@clerk-cookie

Copy link
Copy Markdown
Collaborator

Backporting #1913 to the release/v4 branch

(cherry picked from commit 93a6115)

@changeset-bot

changeset-botBot commented Nov 2, 2023

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: f71cd6f

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

This PR includes changesets to release 3 packages
NameType
@clerk/clerk-jsPatch
@clerk/chrome-extensionPatch
@clerk/clerk-expoPatch

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

@octoper
octoper requested a review from a teamNovember 2, 2023 13:26
@octoper

Copy link
Copy Markdown
Contributor

!snapshot

@clerk-cookie

Copy link
Copy Markdown
CollaboratorAuthor

Hey @octoper - the snapshot version command generated the following package versions:

PackageVersion
@clerk/chrome-extension0.4.14-snapshot.v14f8eac
@clerk/clerk-js4.64.3-snapshot.v14f8eac
@clerk/clerk-expo0.19.16-snapshot.v14f8eac

Tip: Use the snippet copy button below to quickly install the required packages.
@clerk/chrome-extension

npm i @clerk/chrome-extension@0.4.14-snapshot.v14f8eac --save-exact

@clerk/clerk-js

npm i @clerk/clerk-js@4.64.3-snapshot.v14f8eac --save-exact

@clerk/clerk-expo

npm i @clerk/clerk-expo@0.19.16-snapshot.v14f8eac --save-exact

…roy (#1913)
* fix(clerk-js): Re-initialize Client singleton on Client destroy
* fix(clerk-js): Assign default values instead of re-initializing Client class
* chore(repo): Adds changeset
* chore(repo): Adds changeset
* chore(clerk-js): Fix typo in test
* test(clerk-js): Added test for Client singleton destroy
* test(clerk-js): Update tests for Client singleton
* test(clerk-js): Update tests for Client singleton & created new fixtures
(cherry picked from commit 93a6115)
@octoper
octoperforce-pushed the backport-release/v4-1913 branch from 14f8eac to f71cd6fCompareNovember 2, 2023 14:26
@octoper
octoper added this pull request to the merge queue Nov 2, 2023
Merged via the queue into release/v4 with commit 8ff6befNov 2, 2023
@octoper
octoper deleted the backport-release/v4-1913 branch November 2, 2023 14:41
@clerk-cookieclerk-cookie mentioned this pull request Nov 2, 2023
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@clerk-cookie@octoper@panteliselef