import Spinner from '@components/Spinner/Spinner'; import { config } from '@config/website'; import { t } from '@lingui/macro'; import { getPublishedPosts } from '@services/graphql/queries'; import { ArticlePreview } from '@ts/types/articles'; import { getFormattedDate } from '@utils/helpers/format'; import Image from 'next/image'; import Link from 'next/link'; import { useRouter } from 'next/router'; import useSWR from 'swr'; import styles from './RecentPosts.module.scss'; const RecentPosts = () => { const { data, error } = useSWR('/recent-posts', () => getPublishedPosts({ first: 3 }) ); const router = useRouter(); const locale = router.locale ? router.locale : config.locales.defaultLocale; const getPost = (post: ArticlePreview) => { return (
  • {post.featuredImage && Object.keys(post.featuredImage).length > 0 && (
    {post.featuredImage.altText}
    )}

    {post.title}

    {t`Published on:`}
  • ); }; const getPostsItems = () => { if (error) return t`Failed to load.`; if (!data) return ; return data.posts.map((post) => getPost(post)); }; return ; }; export default RecentPosts;