@tanstack/solid-router
Version:
Modern and scalable routing for Solid applications
31 lines (30 loc) • 1.26 kB
JavaScript
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