UNPKG

@tanstack/solid-router

Version:

Modern and scalable routing for Solid applications

45 lines (44 loc) 1.48 kB
import { routerContext } from "./routerContext.js"; import { SafeFragment } from "./SafeFragment.js"; import { Matches } from "./Matches.js"; import { serializeMatchTransfer } from "./registryTransfer.js"; import { createComponent, mergeProps } from "@solidjs/web"; import * as Solid from "solid-js"; import { isServer } from "@tanstack/router-core/isServer"; //#region src/RouterProvider.tsx var RouterContext = routerContext; function RouterContextProvider({ router, children, ...rest }) { if (Object.keys(rest).length > 0) Solid.runWithOwner(null, () => { router.update({ ...router.options, ...rest, context: { ...router.options.context, ...rest.context } }); }); const ready = Solid.createMemo(() => isServer && !router._serverResult ? router.load().then(() => true) : true); return createComponent(router.options.Wrap || SafeFragment, { get children() { return createComponent(RouterContext, { value: router, get children() { return createComponent(Solid.Show, { get when() { return ready(); }, children: (_) => { if (isServer) serializeMatchTransfer(router); return children(); } }); } }); } }); } function RouterProvider({ router, ...rest }) { return createComponent(RouterContextProvider, mergeProps({ router }, rest, { children: () => createComponent(Matches, {}) })); } //#endregion export { RouterContextProvider, RouterProvider }; //# sourceMappingURL=RouterProvider.js.map