diff --git a/src/app/page.tsx b/src/app/page.tsx index 3354e9a..657cd02 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -1,8 +1,8 @@ import { HomePageContent } from "@/components/home/home-page-content"; -import { getLatestNews } from "@/data/news"; +import { getNewsCatalog } from "@/data/news"; export default async function Home() { - const news = await getLatestNews(); + const newsByLocale = await getNewsCatalog(); - return ; + return ; } diff --git a/src/components/home/home-page-content.tsx b/src/components/home/home-page-content.tsx index 9752afb..ef85b85 100644 --- a/src/components/home/home-page-content.tsx +++ b/src/components/home/home-page-content.tsx @@ -5,7 +5,7 @@ import { useEffect, useState } from "react"; import type { NewsItem } from "@/data/news"; import { applyLocale, getInitialLocale, getLocaleMessages, type Locale } from "@/lib/i18n"; -export function HomePageContent({ news }: { news: NewsItem[] }) { +export function HomePageContent({ newsByLocale }: { newsByLocale: Record }) { const [locale, setLocale] = useState("zh-CN"); useEffect(() => { @@ -38,6 +38,7 @@ export function HomePageContent({ news }: { news: NewsItem[] }) { }, []); const t = getLocaleMessages(locale); + const visibleNews = newsByLocale[locale] ?? newsByLocale["zh-CN"] ?? []; return (
@@ -69,7 +70,7 @@ export function HomePageContent({ news }: { news: NewsItem[] }) {
- {news.map((post) => ( + {visibleNews.slice(0, 3).map((post) => (
diff --git a/src/data/news/index.ts b/src/data/news/index.ts index 4740b2e..bd4baf6 100644 --- a/src/data/news/index.ts +++ b/src/data/news/index.ts @@ -216,7 +216,7 @@ export async function getNewsBySlug(slug: string, locale: Locale = "zh-CN"): Pro return items.find((item) => item.slug === slug) ?? null; } -export async function getLatestNews() { - const items = await getNewsList(); +export async function getLatestNews(locale: Locale = "zh-CN") { + const items = await getNewsList(locale); return items.slice(0, 3); }