UNPKG

@tanstack/react-router

Version:

Modern and scalable routing for React applications

92 lines (91 loc) 2.53 kB
import { jsx } from "react/jsx-runtime"; import * as React from "react"; function Asset({ tag, attrs, children }) { switch (tag) { case "title": return /* @__PURE__ */ jsx("title", { ...attrs, suppressHydrationWarning: true, children }); case "meta": return /* @__PURE__ */ jsx("meta", { ...attrs, suppressHydrationWarning: true }); case "link": return /* @__PURE__ */ jsx("link", { ...attrs, suppressHydrationWarning: true }); case "style": return /* @__PURE__ */ jsx( "style", { ...attrs, dangerouslySetInnerHTML: { __html: children } } ); case "script": return /* @__PURE__ */ jsx(Script, { attrs, children }); default: return null; } } function Script({ attrs, children }) { React.useEffect(() => { if (attrs == null ? void 0 : attrs.src) { const script = document.createElement("script"); for (const [key, value] of Object.entries(attrs)) { if (key !== "suppressHydrationWarning" && value !== void 0 && value !== false) { script.setAttribute( key, typeof value === "boolean" ? "" : String(value) ); } } document.head.appendChild(script); return () => { if (script.parentNode) { script.parentNode.removeChild(script); } }; } if (typeof children === "string") { const script = document.createElement("script"); script.textContent = children; if (attrs) { for (const [key, value] of Object.entries(attrs)) { if (key !== "suppressHydrationWarning" && value !== void 0 && value !== false) { script.setAttribute( key, typeof value === "boolean" ? "" : String(value) ); } } } document.head.appendChild(script); return () => { if (script.parentNode) { script.parentNode.removeChild(script); } }; } return void 0; }, [attrs, children]); if ((attrs == null ? void 0 : attrs.src) && typeof attrs.src === "string") { return /* @__PURE__ */ jsx("script", { ...attrs, suppressHydrationWarning: true }); } if (typeof children === "string") { return /* @__PURE__ */ jsx( "script", { ...attrs, dangerouslySetInnerHTML: { __html: children }, suppressHydrationWarning: true } ); } return null; } export { Asset }; //# sourceMappingURL=Asset.js.map