@tanstack/solid-router
Version:
Modern and scalable routing for Solid applications
33 lines (32 loc) • 1.18 kB
JavaScript
import { Await } from "../awaited.js";
import { RouterProvider } from "../RouterProvider.js";
import { HeadContent } from "../HeadContent.js";
import { createComponent, memo } from "solid-js/web";
import { hydrate } from "@tanstack/router-core/ssr/client";
//#region src/ssr/RouterClient.tsx
var hydrationPromise;
var Dummy = (props) => memo(() => props.children);
function RouterClient(props) {
if (!hydrationPromise) if (!props.router.state.matches.length) hydrationPromise = hydrate(props.router);
else hydrationPromise = Promise.resolve();
return createComponent(Await, {
promise: hydrationPromise,
children: () => createComponent(Dummy, { get children() {
return createComponent(Dummy, { get children() {
return createComponent(RouterProvider, {
get router() {
return props.router;
},
InnerWrap: (props) => createComponent(Dummy, { get children() {
return [createComponent(Dummy, { get children() {
return [createComponent(HeadContent, {}), memo(() => props.children)];
} }), createComponent(Dummy, {})];
} })
});
} });
} })
});
}
//#endregion
export { RouterClient };
//# sourceMappingURL=RouterClient.js.map