UNPKG

@tanstack/solid-router

Version:

Modern and scalable routing for Solid applications

41 lines (40 loc) 1.8 kB
require("./_virtual/_rolldown/runtime.cjs"); const require_ClientOnly = require("./ClientOnly.cjs"); const require_Asset = require("./Asset.cjs"); const require_headContentUtils = require("./headContentUtils.cjs"); let solid_js_web = require("solid-js/web"); let solid_js = require("solid-js"); let _solidjs_meta = require("@solidjs/meta"); //#region src/HeadContent.dev.tsx var DEV_STYLES_ATTR = "data-tanstack-router-dev-styles"; /** * @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. * * Development version: filters out dev styles link after hydration and * includes a fallback cleanup effect for hydration mismatch cases. */ function HeadContent() { const tags = require_headContentUtils.useTags(); const hydrated = require_ClientOnly.useHydrated(); (0, solid_js.createEffect)(() => { if (hydrated()) document.querySelectorAll(`link[${DEV_STYLES_ATTR}]`).forEach((el) => el.remove()); }); const filteredTags = (0, solid_js.createMemo)(() => { if (hydrated()) return tags().filter((tag) => !tag.attrs?.[DEV_STYLES_ATTR]); return tags(); }); return (0, solid_js_web.createComponent)(_solidjs_meta.MetaProvider, { get children() { return (0, solid_js_web.createComponent)(solid_js.For, { get each() { return filteredTags(); }, children: (tag) => (0, solid_js_web.createComponent)(require_Asset.Asset, tag) }); } }); } //#endregion exports.HeadContent = HeadContent; //# sourceMappingURL=HeadContent.dev.cjs.map