import { JSX } from "preact"; import { Partial } from "$fresh/runtime.ts"; import { FreshContext, RouteConfig } from "$fresh/server.ts"; import { Route, State } from "$root/defaults/interfaces.ts"; /** * Gets the `RouteConfig` config object for partial pages. * @returns The partials config object. */ export function getPartialsConfig(): RouteConfig { return { skipAppWrapper: true, skipInheritedLayouts: true, }; } /** * Partialize the given page for optimized rendering. * @param page The partial `Route` object to partialize. * @returns The partialized version of `page`. * @example * // Page defintion... * async function Page(_request: Request, context: FreshContext) { * return

My super page!

; * } * * // Partial code that should be at each file's end. * export const config = getPartialsConfig(); * export default makePartials(Page); */ export function makePartials(page: Route) { return async function WrappedElements( request: Request, context: FreshContext, ): Promise { return ( {await page(request, context)} ); }; }