// Dependencies import { serverSideTranslations } from 'next-i18next/serverSideTranslations' import { pages as posts } from 'site/prebuild/blog.mjs' import { meta } from 'site/prebuild/blog-meta.mjs' import { getPostIndexPaths, getPostIndexProps } from 'site/components/mdx/posts/utils.mjs' // Hooks import { useTranslation } from 'next-i18next' // Components import Link from 'next/link' import { TimeAgo } from 'shared/components/mdx/meta.mjs' import { PageWrapper, ns as pageNs } from 'shared/components/wrappers/page.mjs' import { Pagination } from 'shared/components/navigation/pagination.mjs' // Translation namespaces used on this page const namespaces = [...new Set(['designs', 'sections', ...pageNs])] const textShadow = { style: { textShadow: '1px 1px 1px #000000, -1px -1px 1px #000000, 1px -1px 1px #000000, -1px 1px 1px #000000, 2px 2px 1px #000000', }, } const Preview = ({ post, t }) => (
{post.t}
) /* * Each page MUST be wrapped in the PageWrapper component. * You also MUST spread props.page into this wrapper component * when path and locale come from static props (as here) * or set them manually. */ const BlogIndexPage = ({ posts, page, current, total }) => { const { t } = useTranslation() return (
{posts.map((post) => ( ))}
) } export default BlogIndexPage export async function getStaticProps({ locale, params }) { const props = getPostIndexProps(params.page, posts[locale], meta) if (props === false) return { notFound: true } return { props: { // designs, ...props, ...(await serverSideTranslations(locale, namespaces)), page: { locale, path: ['showcase'], }, }, } } export const getStaticPaths = async () => { return { paths: getPostIndexPaths(posts, 'blog'), fallback: 'blocking', } }