import React from 'react'; import Image from 'next/image'; import { ArrowRight } from 'lucide-react'; import { cn, commonClasses } from '@/lib/utils'; import type { Translation } from '@/types/i18n'; interface HeroSectionProps { translations: Translation['hero']; commonTranslations: Translation['common']; } // Composant pour les boutons CTA factorisant la structure répétitive interface CTAButtonProps { href: string; primary?: boolean; children: React.ReactNode; icon?: React.ReactNode; } const CTAButton: React.FC = ({ href, primary = false, children, icon }) => { const handleClick = (e: React.MouseEvent) => { e.preventDefault(); const targetId = href.replace('#', ''); if (targetId === 'services' || targetId === 'about') { document.getElementById(targetId)?.scrollIntoView({ behavior: 'smooth', block: 'start' }); } }; const baseClasses = cn( 'inline-flex items-center justify-center', 'text-lg font-bold rounded-2xl', commonClasses.transition, commonClasses.hoverScale, 'active:scale-95' ); const primaryClasses = cn( 'px-12 py-5 text-white', 'bg-gradient-to-r from-blue-600 to-blue-500', 'shadow-2xl hover:shadow-blue-500/50', 'hover:-translate-y-2 border-2 border-blue-600/20', 'group relative overflow-hidden' ); const secondaryClasses = cn( 'px-8 py-4 text-blue-700 bg-white', 'border-2 border-blue-600 shadow-lg', 'hover:shadow-xl hover:bg-blue-50' ); return ( {primary && (
)} {children} {icon && {icon}} ); }; export const HeroSection: React.FC = ({ translations, commonTranslations }) => (
{/* Motifs de fond optimisés - factorisation des styles répétitifs */}
{/* Contenu principal */}
{/* Logo principal avec effet moderne */}
{translations.title}
{/* Titre principal avec gradient moderne */}

{translations.title}

{/* Sous-titre avec contraste amélioré */}

{translations.subtitle}

{/* Call-to-action optimisé */}
} > {translations.cta} {commonTranslations.learnMore}
);