28 lines
935 B
TypeScript
28 lines
935 B
TypeScript
|
import { MDXLayoutRenderer } from '@/components/MDXComponents'
|
||
|
import { getFileBySlug } from '@/lib/mdx'
|
||
|
import { GetStaticProps, InferGetStaticPropsType } from 'next'
|
||
|
import { AuthorFrontMatter } from 'types/AuthorFrontMatter'
|
||
|
|
||
|
const DEFAULT_LAYOUT = 'AuthorLayout'
|
||
|
|
||
|
// @ts-ignore
|
||
|
export const getStaticProps: GetStaticProps<{
|
||
|
authorDetails: { mdxSource: string; frontMatter: AuthorFrontMatter }
|
||
|
}> = async () => {
|
||
|
const authorDetails = await getFileBySlug<AuthorFrontMatter>('authors', ['default'])
|
||
|
const { mdxSource, frontMatter } = authorDetails
|
||
|
return { props: { authorDetails: { mdxSource, frontMatter } } }
|
||
|
}
|
||
|
|
||
|
export default function About({ authorDetails }: InferGetStaticPropsType<typeof getStaticProps>) {
|
||
|
const { mdxSource, frontMatter } = authorDetails
|
||
|
|
||
|
return (
|
||
|
<MDXLayoutRenderer
|
||
|
layout={frontMatter.layout || DEFAULT_LAYOUT}
|
||
|
mdxSource={mdxSource}
|
||
|
frontMatter={frontMatter}
|
||
|
/>
|
||
|
)
|
||
|
}
|