// Dependencies import { serverSideTranslations } from 'next-i18next/serverSideTranslations' import { sanityLoader, sanityImage } from 'shared/sanity.mjs' // Hooks import { useTranslation } from 'next-i18next' // Components import Link from 'next/link' import { TimeAgo } from 'shared/components/wrappers/mdx.mjs' import { PageWrapper, ns as pageNs } from 'shared/components/wrappers/page.mjs' // Translation namespaces used on this page const namespaces = [...new Set(['designs', ...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.title}
) /* * 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 = ({ page, posts }) => { const { t } = useTranslation() return (
{posts.map((post) => ( ))}
) } export default BlogIndexPage export async function getStaticProps({ locale }) { const posts = await sanityLoader({ language: locale, type: 'blog' }).catch((err) => console.log(err) ) return { props: { posts: posts.map((post) => ({ slug: post.slug.current, title: post.title, date: post.date, // FIXME get the authors separately author: post.author, image: sanityImage(post.image) + '?fit=clip&w=400', })), ...(await serverSideTranslations(locale, namespaces)), page: { locale, // title: 'Freesewing Blog', path: ['blog'], }, }, } }