diff --git a/.changeset/witty-tires-flow.md b/.changeset/witty-tires-flow.md new file mode 100644 index 00000000000..cccc67dcd1d --- /dev/null +++ b/.changeset/witty-tires-flow.md @@ -0,0 +1,5 @@ +--- +'@tanstack/router-core': patch +--- + +defer `$_TSR` teardown until DOMContentLoaded diff --git a/packages/router-core/src/ssr/tsrScript.ts b/packages/router-core/src/ssr/tsrScript.ts index 69c9abe05d5..0c4b8f703b6 100644 --- a/packages/router-core/src/ssr/tsrScript.ts +++ b/packages/router-core/src/ssr/tsrScript.ts @@ -9,8 +9,17 @@ self.$_TSR = { }, c() { if (this.hydrated && this.streamEnded) { - delete self.$_TSR - delete self.$R['tsr'] + const cleanup = () => { + if (self.$_TSR?.hydrated && self.$_TSR?.streamEnded) { + delete self.$_TSR + delete self.$R['tsr'] + } + } + if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', cleanup, { once: true }) + } else { + cleanup() + } } }, p(script) {