diff --git a/packages/docs-new/src/_default.page.client.tsx b/packages/docs-new/src/_default.page.client.tsx index 38cbb6b..26fb252 100644 --- a/packages/docs-new/src/_default.page.client.tsx +++ b/packages/docs-new/src/_default.page.client.tsx @@ -4,14 +4,17 @@ import { HeadProvider } from "react-head" import type { PageContextBuiltInClient } from "vite-plugin-ssr/client" import { getPage } from "vite-plugin-ssr/client" import { App } from "./app" +import { RouteContextProvider } from "./route-context" const context = await getPage() createRoot(document.querySelector("#app")!).render( - - - + + + + + , ) diff --git a/packages/docs-new/src/_default.page.server.tsx b/packages/docs-new/src/_default.page.server.tsx index 9a06be5..8194b05 100644 --- a/packages/docs-new/src/_default.page.server.tsx +++ b/packages/docs-new/src/_default.page.server.tsx @@ -4,6 +4,7 @@ import { HeadProvider } from "react-head" import type { PageContextBuiltIn } from "vite-plugin-ssr" import { dangerouslySkipEscape, escapeInject } from "vite-plugin-ssr" import { App } from "./app" +import { RouteContextProvider } from "./route-context" export const passToClient = ["routeParams"] @@ -12,9 +13,11 @@ export function render(context: PageContextBuiltIn) { const pageHtml = renderToString( - - - + + + + + , ) diff --git a/packages/docs-new/src/pages/docs.page.tsx b/packages/docs-new/src/pages/docs.page.tsx index a28d1b5..b747f2e 100644 --- a/packages/docs-new/src/pages/docs.page.tsx +++ b/packages/docs-new/src/pages/docs.page.tsx @@ -3,6 +3,7 @@ import { AppLink } from "../components/app-link" import { MainNavigation } from "../components/main-navigation" import { guideLinks } from "../data/guide-links.preval" import { useScrolled } from "../hooks/dom/use-scrolled" +import { useRouteParams } from "../route-context" import { docsProseClass, linkClass, @@ -10,6 +11,7 @@ import { } from "../styles/components" export default function DocsPage() { + const params = useRouteParams() return ( <> @@ -30,6 +32,7 @@ export default function DocsPage() {
{/* todo */} + {JSON.stringify(params, undefined, 2)}
diff --git a/packages/docs-new/src/route-context.tsx b/packages/docs-new/src/route-context.tsx new file mode 100644 index 0000000..369b139 --- /dev/null +++ b/packages/docs-new/src/route-context.tsx @@ -0,0 +1,13 @@ +import { createContext, useContext } from "react" + +export type RouteContextValue = { + routeParams: Record +} + +const Context = createContext() + +export const RouteContextProvider = Context.Provider + +export function useRouteParams() { + return useContext(Context)?.routeParams ?? {} +}