import { motion } from 'framer-motion' import { Phone, Mail, Linkedin, MapPin } from 'lucide-react' import { useScrollReveal } from '@/hooks/useScrollReveal' import type { ContactItem } from '@/types' const contactData: ContactItem[] = [ { icon: 'phone', value: '07795553088', label: 'Phone', }, { icon: 'mail', value: 'andy@charlwood.xyz', label: 'Email', href: 'mailto:andy@charlwood.xyz', }, { icon: 'linkedin', value: 'linkedin.com/in/andrewcharlwood', label: 'LinkedIn', href: 'https://linkedin.com/in/andrewcharlwood', }, { icon: 'mapPin', value: 'Norwich, UK', label: 'Location', }, ] const iconMap = { phone: Phone, mail: Mail, linkedin: Linkedin, mapPin: MapPin, } const ContactItemCard = ({ item, delay, isVisible, }: { item: ContactItem delay: number isVisible: boolean }) => { const Icon = iconMap[item.icon] return (
{item.href ? ( {item.value} ) : ( item.value )}
{item.label}
) } export function Contact() { const [sectionRef, isVisible] = useScrollReveal({ threshold: 0.1, }) return (
Contact
{contactData.map((item, index) => ( ))}
) }