import { createFileRoute, notFound } from "@tanstack/react-router"
import { buildRankMathHead, EditorBlocks } from "@wp-reactor/editorial"
import { blockRegistry } from "@/blocks"
import { seoHeadOptions } from "@/editorial/model/seo"
import { isDev } from "@/env"
// Route catch-all de contenu WordPress. Le pattern framework de bout en bout :
// 1. le loader résout le nœud par URI via la plateforme de lecture publique
// (`platform.page.byUriQueryOptions`) : document client + cache SSR + driver
// sont déclarés une fois dans `platform.ts` ;
// 2. `head` construit les / SEO RankMath depuis le même nœud ;
// 3. `EditorBlocks` rend `editorBlocks` via le registre de blocs du client.
// `/` et `/preview` (routes statiques) priment ; `$uri` attrape le reste.
export const Route = createFileRoute("/$uri")({
loader: async ({ context, params: { uri } }) => {
const node = await context.queryClient.ensureQueryData(
context.platform.page.byUriQueryOptions(`/${uri}/`),
)
if (!node) throw notFound()
return { node }
},
head: ({ loaderData }) =>
buildRankMathHead(loaderData?.node.seo, seoHeadOptions),
component: UriPage,
})
function UriPage() {
const { node } = Route.useLoaderData()
return (
)
}