import { Code, Palette, ShieldCheck, Eye } from 'lucide-react'; import { useLanguage } from '../../contexts/LanguageContext'; import FeatureCardsGrid from '../FeatureCardsGrid'; import type { Service } from '../../data/Service'; import saschaImage from '../../assets/sascha.png'; // Define feature card icon and color mappings as constants const FEATURE_CARD_ICONS = [Code, Palette, ShieldCheck, Eye] as const; const FEATURE_CARD_COLORS = ['primary', 'secondary', 'tertiary', 'quaternary'] as const; interface AboutSectionProps { name?: string; title?: string; subtitle?: string; greeting?: string; bio?: string[]; profileImage?: string; featureCards?: Service[]; } export default function AboutSection(props: AboutSectionProps = {}) { const { texts: allTexts } = useLanguage(); const texts = allTexts.about; const accessibilityTexts = allTexts.accessibility; // Use centralized texts as defaults, allow props to override const { name = texts.name, title = texts.title, subtitle = texts.subtitle, greeting, bio = texts.bio, profileImage = saschaImage, featureCards = texts.featureCards.map((card, index) => ({ icon: FEATURE_CARD_ICONS[index] || Code, title: card.title, description: card.description, colorClass: (FEATURE_CARD_COLORS[index]) })) } = props; return (
{/* Section Header */}

{title}

{subtitle && (

{subtitle}

)}
{/* Skip link for keyboard navigation */}
{accessibilityTexts.skipLinks.skipToServices}
{/* Personal Photo and Bio */}
{`Professional

{greeting ?? `Hi, I'm ${name}!`}

{bio.map((paragraph, index) => (

{paragraph}

))}
{/* Feature Cards Grid */}
); }