feat: add related blog posts component
This commit is contained in:
28
src/components/blog/RelatedPosts.astro
Normal file
28
src/components/blog/RelatedPosts.astro
Normal file
@@ -0,0 +1,28 @@
|
||||
---
|
||||
import { APP_BLOG } from "~/utils/config";
|
||||
|
||||
import { fetchPosts, getRelatedPosts } from "~/utils/blog";
|
||||
import BlogHighlightedPosts from "../widgets/BlogHighlightedPosts.astro";
|
||||
import type { Post } from "~/types";
|
||||
import { getBlogPermalink } from "~/utils/permalinks";
|
||||
|
||||
export interface Props {
|
||||
post: Post;
|
||||
}
|
||||
|
||||
const { post } = Astro.props;
|
||||
const fetchedPosts = await fetchPosts();
|
||||
const relatedPosts = post.tags ? getRelatedPosts(fetchedPosts, post.slug, post.tags) : [];
|
||||
---
|
||||
|
||||
{
|
||||
APP_BLOG.isRelatedPostsEnabled ? (
|
||||
<BlogHighlightedPosts
|
||||
classes={{ container: "pt-0 lg:pt-0 md:pt-0" }}
|
||||
title="Related Posts"
|
||||
linkText="View All Posts"
|
||||
linkUrl={getBlogPermalink()}
|
||||
postIds={relatedPosts.map((post) => post.id)}
|
||||
/>
|
||||
) : null
|
||||
}
|
Reference in New Issue
Block a user