1+ import { Container } from 'react-bootstrap'
2+ import { getAllWikiPages , getWikiPageBySlug } from '../../../utils/WikiUtils'
3+ import { getHeadMetadata } from '../../../utils/SSRUtils'
4+ import WikiContent from '../../../components/Wiki/WikiContent'
5+ import { notFound } from 'next/navigation'
6+
7+ interface Props {
8+ params : Promise < { slug : string } >
9+ }
10+
11+ export default async function WikiPage ( props : Props ) {
12+ const params = await props . params
13+ const [ page , allPages ] = await Promise . all ( [
14+ getWikiPageBySlug ( params . slug ) ,
15+ getAllWikiPages ( )
16+ ] )
17+
18+ if ( ! page ) {
19+ notFound ( )
20+ }
21+
22+ return (
23+ < Container >
24+ < WikiContent page = { page } allPages = { allPages } />
25+ </ Container >
26+ )
27+ }
28+
29+ export async function generateStaticParams ( ) {
30+ const pages = await getAllWikiPages ( )
31+ return pages . map ( page => ( {
32+ slug : page . slug
33+ } ) )
34+ }
35+
36+ export async function generateMetadata ( props : Props ) {
37+ const params = await props . params
38+ const page = await getWikiPageBySlug ( params . slug )
39+
40+ if ( ! page ) {
41+ return { }
42+ }
43+
44+ return getHeadMetadata (
45+ `${ page . title } | Wiki` ,
46+ page . description || `Learn about ${ page . title } on SkyCofl` ,
47+ undefined ,
48+ [ 'wiki' , 'documentation' , page . title . toLowerCase ( ) ] ,
49+ `${ page . title } | SkyCofl Wiki`
50+ )
51+ }
0 commit comments