import type { Metadata } from "next" import { getTranslations, getMessages, setRequestLocale } from "next-intl/server" import { Link } from "@/i18n/navigation" import { ArrowRight, Users, HelpCircle, ScrollText, Heart, Star, ExternalLink } from "lucide-react" import { DocHeader } from "@/components/ui/doc-header" import { Callout } from "@/components/ui/callout" export async function generateMetadata({ params, }: { params: Promise<{ locale: string }> }): Promise { const { locale } = await params const t = await getTranslations({ locale, namespace: "docs.about.meta" }) return { title: t("title"), description: t("description"), openGraph: { title: t("ogTitle"), description: t("ogDescription"), type: "article", url: "https://macrimi.github.io/ProxMenux/docs/about", }, } } type SectionOption = { icon: string href: string title: string description: string } type InvolvedCard = { href: string title: string description: string } const ICONS: Record> = { HelpCircle, Users, ScrollText, } function OptionCard({ option }: { option: SectionOption }) { const Icon = ICONS[option.icon] || HelpCircle return (
{option.title}
{option.description}
) } export default async function AboutOverviewPage({ params, }: { params: Promise<{ locale: string }> }) { const { locale } = await params setRequestLocale(locale) const t = await getTranslations({ locale, namespace: "docs.about" }) const messages = (await getMessages({ locale })) as unknown as { docs: { about: { section: { options: SectionOption[] } involved: { cards: InvolvedCard[] } } } } const options = messages.docs.about.section.options const involvedCards = messages.docs.about.involved.cards const starlink = (chunks: React.ReactNode) => ( {chunks} ) return (
{t("callout.body")}

{t("section.heading")}

{options.map((o) => ( ))}

{t("involved.heading")}

{t("involved.intro")}

{involvedCards.map((card) => (
{card.title}
{card.description}
))}

{t("support.heading")}

{t.rich("support.introRich", { starlink })}

{t("support.kofiLabel")} {t("support.kofiOutro")}

) }