2
0
Files
bot/ee/apps/landing-page/app/blog/Posts.tsx
2024-05-23 10:42:23 +02:00

57 lines
1.3 KiB
TypeScript

'use client'
import { Heading, Stack, Text } from '@chakra-ui/react'
import { Link } from '@chakra-ui/next-js'
type Props = {
allBlogs: {
metadata: {
title: string
publishedAt: string
}
slug: string
}[]
}
export const Posts = ({ allBlogs }: Props) => (
<Stack
spacing={10}
mx="auto"
maxW="3xl"
my="20"
fontSize="17px"
textAlign="justify"
>
<Heading>Latest blog posts:</Heading>
<Stack>
{allBlogs
.filter((post) => post.metadata.publishedAt)
.sort((a, b) => {
if (
new Date(a.metadata.publishedAt) > new Date(b.metadata.publishedAt)
) {
return -1
}
return 1
})
.map((post) => (
<Link key={post.slug} href={`/blog/${post.slug}`}>
<Stack
w="full"
rounded="md"
borderColor="gray.600"
borderWidth={1}
p="4"
>
<Heading as="h2" fontSize="2xl">
{post.metadata.title}
</Heading>
<Text color="gray.500">
{new Date(post.metadata.publishedAt).toDateString()}
</Text>
</Stack>
</Link>
))}
</Stack>
</Stack>
)