"use client"; import Link from "next/link"; import { useEffect, useState } from "react"; import type { NewsItem } from "@/data/news"; import { getInitialLocale, getLocaleMessages, type Locale } from "@/lib/i18n"; export function NewsList({ catalog }: { catalog: Record }) { const [activeCategory, setActiveCategory] = useState(null); const [locale, setLocale] = useState("zh-CN"); const messages = getLocaleMessages(locale); const news = catalog[locale]; useEffect(() => { const syncLocale = () => setLocale(getInitialLocale()); syncLocale(); window.addEventListener("kr-locale-change", syncLocale); window.addEventListener("storage", syncLocale); return () => { window.removeEventListener("kr-locale-change", syncLocale); window.removeEventListener("storage", syncLocale); }; }, []); const categories = Array.from(new Set(news.map((item) => item.category).filter(Boolean))); const visibleNews = activeCategory ? news.filter((item) => item.category === activeCategory) : news; return ( <>
{categories.map((category) => ( ))}
{visibleNews.map((item) => (
{item.category}

{item.title}

))}
); }