UNPKG

@tanstack/solid-router

Version:

Modern and scalable routing for Solid applications

31 lines (30 loc) 1.26 kB
import { useRouter } from "./useRouter.js"; import { Asset } from "./Asset.js"; import { composeSsrBodyScripts, getSsrBodyScriptParts, replaceEqualDeep } from "@tanstack/router-core"; import { createComponent } from "solid-js/web"; import * as Solid from "solid-js"; import { isServer } from "@tanstack/router-core/isServer"; //#region src/Scripts.tsx /** * During streaming SSR, `<Scripts>` marks where late hydration scripts may * begin to be inserted. */ var Scripts = () => { const router = useRouter(); const nonce = router.options.ssr?.nonce; const scripts = Solid.createMemo((previous) => { const next = composeSsrBodyScripts(getSsrBodyScriptParts(router.stores.matches.get(), router.ssr?.manifest, nonce)); return previous ? replaceEqualDeep(previous, next) : next; }); const initialHydrationScripts = (isServer ?? router.isServer) && router.serverSsr ? router.serverSsr.takeInitialHydrationScriptTags() : void 0; const tags = () => initialHydrationScripts ? composeSsrBodyScripts([scripts(), []], initialHydrationScripts) : scripts(); return createComponent(Solid.For, { get each() { return tags(); }, children: (asset) => createComponent(Asset, asset) }); }; //#endregion export { Scripts }; //# sourceMappingURL=Scripts.js.map