From 785371bb3eccca455e5ce5fccbe9b6e3752a03f6 Mon Sep 17 00:00:00 2001
From: Bertrand Yuan <bert.yuan@outlook.com>
Date: Tue, 16 Dec 2025 00:15:04 +0800
Subject: fix(front-end): bug in viewing posts

---
 src/app/(main)/(home)/_components/posts.tsx | 58 +++--------------------------
 1 file changed, 5 insertions(+), 53 deletions(-)

(limited to 'src/app/(main)/(home)/_components/posts.tsx')

diff --git a/src/app/(main)/(home)/_components/posts.tsx b/src/app/(main)/(home)/_components/posts.tsx
index 00ada0c..0eacce1 100644
--- a/src/app/(main)/(home)/_components/posts.tsx
+++ b/src/app/(main)/(home)/_components/posts.tsx
@@ -2,73 +2,25 @@ import { Icons } from '@/components/icons/icons';
 import { PostCard } from '@/components/posts/post-card';
 import { Section } from '@/components/section';
 import { buttonVariants } from '@/components/ui/button';
-import type { Page } from '@/lib/source';
 import type { BlogPost } from '@/lib/payload-posts';
 import Link from 'next/link';
 
-// 统一的文章数据格式
-interface UnifiedPost {
-  title: string;
-  description: string;
-  image?: string | null;
-  url: string;
-  date: string;
-  author: string;
-  tags?: string[];
-}
-
-// 将 MDX Page 转换为统一格式
-function transformMdxPost(post: Page): UnifiedPost {
-  return {
-    title: post.data.title,
-    description: post.data.description ?? '',
-    image: post.data.image,
-    url: post.url,
-    date: new Date(post.data.date).toDateString(),
-    author: post.data.author,
-    tags: post.data.tags,
-  };
-}
-
-// 将 Payload BlogPost 转换为统一格式
-function transformPayloadPost(post: BlogPost): UnifiedPost {
-  return {
-    title: post.title,
-    description: post.description,
-    image: post.image,
-    url: post.url,
-    date: post.date.toDateString(),
-    author: post.author,
-    tags: post.tags,
-  };
-}
-
 interface PostsProps {
-  mdxPosts?: Page[];
-  payloadPosts?: BlogPost[];
+  posts: BlogPost[];
 }
 
-export default function Posts({ mdxPosts = [], payloadPosts = [] }: PostsProps) {
-  // 转换并合并所有文章
-  const allPosts: UnifiedPost[] = [
-    ...mdxPosts.map(transformMdxPost),
-    ...payloadPosts.map(transformPayloadPost),
-  ];
-
-  // 按日期排序
-  allPosts.sort((a, b) => new Date(b.date).getTime() - new Date(a.date).getTime());
-
+export default function Posts({ posts }: PostsProps) {
   return (
     <Section>
       <div className='grid divide-y divide-dashed divide-border/70 text-left dark:divide-border'>
-        {allPosts.map((post) => (
+        {posts.map((post) => (
           <PostCard
             title={post.title}
             description={post.description}
             image={post.image}
             url={post.url}
-            date={post.date}
-            key={post.url}
+            date={post.date.toDateString()}
+            key={post.id}
             author={post.author}
             tags={post.tags}
           />
-- 
cgit v1.2.3

