"use client"; import { useMemo, useState } from "react"; import Link from "next/link"; import { useI18n } from "@/lib/i18n"; import type { Discussion, DiscussionDetail } from "@/lib/types"; const CATEGORIES = ["全部", "签证", "远程工作", "住宿", "安全", "社区"]; interface Props { discussions: Discussion[]; featured?: DiscussionDetail | null; } export default function CommunityHubClient({ discussions, featured }: Props) { const { t } = useI18n(); const [category, setCategory] = useState("全部"); const [q, setQ] = useState(""); const filtered = useMemo(() => { let list = discussions; if (category !== "全部") list = list.filter((d) => d.category === category); if (q.trim()) { const s = q.toLowerCase(); list = list.filter( (d) => d.title.toLowerCase().includes(s) || d.excerpt.toLowerCase().includes(s) || d.tags.some((tag) => tag.toLowerCase().includes(s)) ); } return list; }, [discussions, category, q]); return (
{t.community.subtitle}
{t.community.bannerDesc}
{featured.excerpt}
{r.author_emoji} {r.author} {r.content}))}
{d.author} · {d.category} · {d.created_at}
{d.excerpt}
))}{t.community.empty}
)}