diff --git a/.changeset/remove-beforeunload-safelock.md b/.changeset/remove-beforeunload-safelock.md new file mode 100644 index 00000000000..591a4eb3e19 --- /dev/null +++ b/.changeset/remove-beforeunload-safelock.md @@ -0,0 +1,5 @@ +--- +'@clerk/clerk-js': patch +--- + +Removed redundant `beforeunload` event listener from SafeLock that was disabling the browser's back-forward cache (bfcache), degrading navigation performance. diff --git a/packages/clerk-js/src/core/auth/safeLock.ts b/packages/clerk-js/src/core/auth/safeLock.ts index 405190a73ff..5fb08ea5a06 100644 --- a/packages/clerk-js/src/core/auth/safeLock.ts +++ b/packages/clerk-js/src/core/auth/safeLock.ts @@ -3,12 +3,6 @@ import Lock from 'browser-tabs-lock'; export function SafeLock(key: string) { const lock = new Lock(); - // TODO: Figure out how to fix this linting error - // eslint-disable-next-line @typescript-eslint/no-misused-promises - window.addEventListener('beforeunload', async () => { - await lock.releaseLock(key); - }); - const acquireLockAndRun = async (cb: () => Promise) => { if ('locks' in navigator && isSecureContext) { const controller = new AbortController();