@tanstack/solid-router
Version:
Modern and scalable routing for Solid applications
48 lines (47 loc) • 1.53 kB
JavaScript
import { RouterProvider } from "../RouterProvider.js";
import { Asset } from "../Asset.js";
import { useTags } from "../headContentUtils.js";
import { Scripts } from "../Scripts.js";
import { Hydration, NoHydration, createComponent, insert, ssr, template, useAssets } from "solid-js/web";
import { MetaProvider } from "@solidjs/meta";
//#region src/ssr/RouterServer.tsx
var _tmpl$ = /* @__PURE__ */ template(`<html><head></head><body>`);
function ServerHeadContent() {
const tags = useTags();
useAssets(() => {
return createComponent(MetaProvider, { get children() {
return tags().map((tag) => createComponent(Asset, tag));
} });
});
return null;
}
var docType = ssr("<!DOCTYPE html>");
function RouterServer(props) {
return createComponent(NoHydration, { get children() {
return [docType, (() => {
var _el$ = _tmpl$(), _el$3 = _el$.firstChild;
insert(_el$3, createComponent(Hydration, { get children() {
return createComponent(RouterProvider, {
get router() {
return props.router;
},
InnerWrap: (props) => createComponent(NoHydration, { get children() {
return createComponent(MetaProvider, { get children() {
return [
createComponent(ServerHeadContent, {}),
createComponent(Hydration, { get children() {
return props.children;
} }),
createComponent(Scripts, {})
];
} });
} })
});
} }));
return _el$;
})()];
} });
}
//#endregion
export { RouterServer };
//# sourceMappingURL=RouterServer.js.map