diff --git a/CHANGELOG.md b/CHANGELOG.md index 426288e..1838948 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -32,3 +32,6 @@ verzování [sémantické](https://semver.org/lang/cs/). odmítne s HTTP 400 „url parameter is not allowed". Do `next/image` se nově posílá jen cesta — soubor leží na stejném originu a stejný image tak funguje na stagingu i v produkci, kde se domény liší. +- Stránky založené v administraci se nikde neobjevily. Navigace byla napsaná + natvrdo a odkazovala na `/kontakt`, i když stránka s tím slugem nemusela + existovat (odtud 404). Menu se teď skládá z kolekce Pages. diff --git a/src/app/(frontend)/layout.tsx b/src/app/(frontend)/layout.tsx index 73b4c66..2a95be0 100644 --- a/src/app/(frontend)/layout.tsx +++ b/src/app/(frontend)/layout.tsx @@ -1,5 +1,8 @@ import React from 'react' import Link from 'next/link' +import { getPayload } from 'payload' + +import config from '@/payload.config' import './styles.css' export const metadata = { @@ -7,8 +10,22 @@ export const metadata = { title: 'Reiner — zbraně a střelivo', } +// Menu se skládá z obsahu, takže se nesmí předgenerovat při buildu. +// Platí i pro stránku 404, která tenhle layout používá také. +export const dynamic = 'force-dynamic' + export default async function RootLayout(props: { children: React.ReactNode }) { const { children } = props + const payload = await getPayload({ config: await config }) + + // Do menu se propíše každá stránka založená v administraci — natvrdo psaný + // odkaz by mířil na něco, co majitel ještě nevytvořil, nebo pojmenoval jinak. + const { docs: stranky } = await payload.find({ + collection: 'pages', + sort: 'nazev', + depth: 0, + limit: 20, + }) return ( @@ -19,7 +36,11 @@ export default async function RootLayout(props: { children: React.ReactNode }) {