import type { Metadata } from "next"; import { ArrowUpRight, CalendarDays, FolderKanban } from "lucide-react"; import Link from "next/link"; import { getTranslations } from "next-intl/server"; import { Container } from "@/components/layout/container"; import { MotionFade } from "@/components/motion-fade"; import { buildLocalizedMetadata } from "@/lib/metadata"; import { AppCard } from "@/components/ui/app-card"; import { CardContent } from "@/components/ui/card"; import { getLocalizedPath, resolveLocale } from "@/lib/locale"; import { pickText, portfolioItems } from "@/lib/site-data"; type PortfolioPageProps = { params: { locale: string; }; }; export async function generateMetadata({ params: { locale }, }: PortfolioPageProps): Promise { const localeKey = resolveLocale(locale); const t = await getTranslations({ locale: localeKey, namespace: "portfolioPage" }); return buildLocalizedMetadata({ locale: localeKey, pathname: "/portfolio", title: t("title"), description: t("intro"), }); } export default async function PortfolioPage({ params: { locale } }: PortfolioPageProps) { const localeKey = resolveLocale(locale); const t = await getTranslations({ locale: localeKey, namespace: "portfolioPage" }); return (

{t("title")}

{t("intro")}

{portfolioItems.map((item, index) => (

{pickText(item.category, localeKey)}

{item.year}

{pickText(item.title, localeKey)}

{pickText(item.summary, localeKey)}

{t("open")}

))}
); }