'use client'; import { useRef } from 'react'; import { useTranslations } from 'next-intl'; import { motion, useInView } from 'framer-motion'; import { Newspaper, Download, ExternalLink, Calendar, Mail, Phone, FileText, Image as ImageIcon, Video, Award, TrendingUp, Users, Globe, ArrowRight, Quote, type LucideIcon, } from 'lucide-react'; import { LandingHeader, LandingFooter } from '@/components/layout'; type StatKey = 'funding' | 'clients' | 'carriers' | 'countries'; type ReleaseKey = 'seriesA' | 'clients500' | 'cmaCgm' | 'tracking' | 'rotterdam'; type CoverageKey = 'lesEchos' | 'bfm' | 'jmm' | 'techEu'; type KitItemKey = 'visuals' | 'dossier' | 'videos'; type MilestoneKey = '2021' | '2022' | '2023' | '2024' | '2025'; const STATS: { key: StatKey; value: string }[] = [ { key: 'funding', value: '15M€' }, { key: 'clients', value: '500+' }, { key: 'carriers', value: '50+' }, { key: 'countries', value: '15' }, ]; const RELEASES: { id: number; key: ReleaseKey }[] = [ { id: 1, key: 'seriesA' }, { id: 2, key: 'clients500' }, { id: 3, key: 'cmaCgm' }, { id: 4, key: 'tracking' }, { id: 5, key: 'rotterdam' }, ]; const COVERAGE: { key: CoverageKey; outlet: string; url: string }[] = [ { key: 'lesEchos', outlet: 'Les Echos', url: '#' }, { key: 'bfm', outlet: 'BFM Business', url: '#' }, { key: 'jmm', outlet: 'Journal de la Marine Marchande', url: '#' }, { key: 'techEu', outlet: 'Tech.eu', url: '#' }, ]; const KIT_ITEMS: { key: KitItemKey; icon: LucideIcon }[] = [ { key: 'visuals', icon: ImageIcon }, { key: 'dossier', icon: FileText }, { key: 'videos', icon: Video }, ]; const MILESTONES: { key: MilestoneKey; icon: LucideIcon }[] = [ { key: '2021', icon: Award }, { key: '2022', icon: TrendingUp }, { key: '2023', icon: TrendingUp }, { key: '2024', icon: Users }, { key: '2025', icon: Globe }, ]; export default function PressPage() { const t = useTranslations('marketing.press'); const heroRef = useRef(null); const newsRef = useRef(null); const resourcesRef = useRef(null); const contactRef = useRef(null); const milestonesRef = useRef(null); const isHeroInView = useInView(heroRef, { once: true }); const isNewsInView = useInView(newsRef, { once: true }); const isResourcesInView = useInView(resourcesRef, { once: true }); const isContactInView = useInView(contactRef, { once: true }); const isMilestonesInView = useInView(milestonesRef, { once: true }); const containerVariants = { hidden: { opacity: 0, y: 50 }, visible: { opacity: 1, y: 0, transition: { duration: 0.6, staggerChildren: 0.1, }, }, }; const itemVariants = { hidden: { opacity: 0, y: 20 }, visible: { opacity: 1, y: 0, transition: { duration: 0.5 }, }, }; return (
{/* Hero Section */}
{t('badge')}

{t('title1')}
{t('title2')}

{t('intro')}

{/* Wave */}
{/* Key Stats */}
{STATS.map((stat, index) => (
{stat.value}
{t(`stats.${stat.key}`)}
))}
{/* Press Releases */}

{t('releasesTitle')}

{t('releasesSubtitle')}

{RELEASES.map((release) => (
{t(`releases.${release.key}.category`)} {t(`releases.${release.key}.date`)}

{t(`releases.${release.key}.title`)}

{t(`releases.${release.key}.excerpt`)}

))}
{/* Media Coverage */}

{t('coverageTitle')}

{t('coverageSubtitle')}

{COVERAGE.map((article, index) => (
{article.outlet}

{t(`coverage.${article.key}.title`)}

{t(`coverage.${article.key}.date`)}
))}
{/* Press Kit Resources */}

{t('kitTitle')}

{t('kitSubtitle')}

{KIT_ITEMS.map((item) => { const IconComponent = item.icon; return (

{t(`kit.${item.key}.title`)}

{t(`kit.${item.key}.description`)}

{t(`kit.${item.key}.format`)} {t('kit.download')}
); })}
{/* Milestones */}

{t('milestonesTitle')}

{t('milestonesSubtitle')}

{MILESTONES.map((milestone, index) => { const IconComponent = milestone.icon; return (
{milestone.key}
{t(`milestones.${milestone.key}` as any)}
); })}
{/* Press Contact */}

{t('contact.title')}

{t('contact.body')}

{t('contact.relationsTitle')}

{t('contact.emailLabel')}
presse@xpeditis.com
{t('contact.phoneLabel')}
+33 1 23 45 67 90

{t('contact.responsibleTitle')}

Camille Dumont
{t('contact.responsibleRole')}

{t('contact.responsibleBio')}

“{t('contact.quote')}”

Jean-Pierre Durand {t('contact.quoteRole')}
); }