'use client'; import { useRef } from 'react'; import { motion, useInView } from 'framer-motion'; import { useTranslations } from 'next-intl'; import { Shield, Eye, Lock, UserCheck, Database, Globe, Mail, Calendar, type LucideIcon, } from 'lucide-react'; import { LandingHeader, LandingFooter } from '@/components/layout'; const SECTION_KEYS = ['data', 'use', 'protection', 'rights', 'transfers', 'retention'] as const; const ICONS: Record<(typeof SECTION_KEYS)[number], LucideIcon> = { data: Database, use: Eye, protection: Lock, rights: UserCheck, transfers: Globe, retention: Calendar, }; function renderInlineBold(content: string) { return content .split('**') .map((part, i) => (i % 2 === 1 ? {part} : part)); } export default function PrivacyPage() { const t = useTranslations('marketing.privacy'); const tCommon = useTranslations('marketing.common'); const heroRef = useRef(null); const contentRef = useRef(null); const isHeroInView = useInView(heroRef, { once: true }); const isContentInView = useInView(contentRef, { 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')}

{tCommon('lastUpdated')}

{/* Content Section */}
{SECTION_KEYS.map(key => { const IconComponent = ICONS[key]; return (

{t(`sections.${key}.title`)}

{renderInlineBold(t(`sections.${key}.content`))}
); })}
{/* Contact Section */}

{t('contact.title')}

{t('contact.body')}

privacy@xpeditis.com
); }