37 lines
1.0 KiB
Plaintext
37 lines
1.0 KiB
Plaintext
---
|
|
import { readItems } from '@directus/sdk';
|
|
|
|
import type { Post } from '@lib/directusTypes';
|
|
|
|
import directus from '@lib/directus';
|
|
import BlogCard from '@components/blog/BlogCard.astro';
|
|
|
|
const posts = await directus.request(
|
|
readItems('posts', {
|
|
filter: { published: { _eq: true } },
|
|
fields: ['*'],
|
|
sort: ['-published_date'],
|
|
})
|
|
);
|
|
|
|
const recentPosts = posts
|
|
.sort((a: Post, b: Post) => (new Date(b.published_date).getTime()) - (new Date(a.published_date).getTime()))
|
|
.slice(0, 3);
|
|
---
|
|
|
|
<section class="mx-auto mb-20 max-w-340 px-4 py-10 sm:px-6 lg:px-8 lg:py-14 2xl:max-w-full">
|
|
<div class="mx-auto mb-10 max-w-2xl text-center lg:mb-14">
|
|
<h1 class="smooth-reveal card-text-header block">
|
|
Latest Posts
|
|
</h1>
|
|
<div class="smooth-reveal mx-auto mt-5 max-w-3xl text-center">
|
|
<span class="card-text-header-description">
|
|
Checkout my most recent thoughts here
|
|
</span>
|
|
</div>
|
|
</div>
|
|
<div class="grid gap-6 sm:grid-cols-2 lg:grid-cols-3">
|
|
{recentPosts.map((b) => <BlogCard post={b} />)}
|
|
</div>
|
|
</section>
|