"use client"; import Link from "next/link"; import { motion } from "framer-motion"; import { GitBranch, Lock, Zap, Sparkles, MapPin, Server, Globe, Briefcase, Clock, } from "lucide-react"; import GlassCard from "@/components/ui/GlassCard"; import { fadeUp, stagger, viewportConfig } from "@/lib/animations"; import type { Dictionary, Locale } from "@/lib/dictionaries"; const highlightIcons = [GitBranch, Lock, Zap, Sparkles]; const factIcons = [MapPin, Server, Globe, Briefcase, Clock]; interface AboutContentProps { locale: Locale; dict: Dictionary; } interface TextParagraph { type: "text"; content: string; } interface LinkParagraph { type: "linkParagraph"; before: string; linkText: string; href: string; } type ApproachParagraph = TextParagraph | LinkParagraph; export default function AboutContent({ locale, dict }: AboutContentProps) { const t = dict.aboutPage; return ( <> {/* Hero */} {t.badge} {t.title} {t.titleAccent} {t.subtitle} {/* Approach + Quick facts */} {/* Main text */} {t.approachTitle} {t.approachParagraphs.map((p : ApproachParagraph, i : number) => { if (p.type === "text") { return {p.content}; } if (p.type === "linkParagraph") { return ( {p.before} {p.linkText} . ); } return null; })} {/* Quick facts */} {t.quickFactsTitle} {t.facts.map((fact, i) => { const Icon = factIcons[i] || MapPin; return ( {fact.label} {fact.value} ); })} {/* Highlights */} {t.highlightsTitle} {t.highlights.map((item, i) => { const Icon = highlightIcons[i] || Sparkles; return ( {item.title} {item.description} ); })} > ); }
{p.content}
{p.before} {p.linkText} .
{item.description}