@tanstack/solid-router
Version:
Modern and scalable routing for Solid applications
48 lines (47 loc) • 1.57 kB
JavaScript
require("./_virtual/_rolldown/runtime.cjs");
const require_useRouter = require("./useRouter.cjs");
const require_Asset = require("./Asset.cjs");
const require_headContentUtils = require("./headContentUtils.cjs");
let _solidjs_web = require("@solidjs/web");
let solid_js = require("solid-js");
//#region src/HeadContent.tsx
/**
* @description The `HeadContent` component is used to render meta tags, links, and scripts for the current route.
* When using full document hydration (hydrating from `<html>`), this component should be rendered in the `<body>`
* to ensure it's part of the reactive tree and updates correctly during client-side navigation.
* The component uses portals internally to render content into the `<head>` element.
*/
function HeadContent(props) {
const tags = require_headContentUtils.useTags(props.assetCrossOrigin);
const router = require_useRouter.useRouter();
const content = () => (0, _solidjs_web.createComponent)(solid_js.For, {
get each() {
return tags();
},
children: (tag) => {
const t = tag();
return (0, _solidjs_web.createComponent)(require_Asset.Asset, {
get tag() {
return t.tag;
},
get attrs() {
return t.attrs;
},
get children() {
return t.children;
}
});
}
});
return _solidjs_web.isServer ?? router.isServer ? content() : (0, _solidjs_web.createComponent)(_solidjs_web.Portal, {
get mount() {
return document.head;
},
get children() {
return content();
}
});
}
//#endregion
exports.HeadContent = HeadContent;
//# sourceMappingURL=HeadContent.cjs.map