'use client' import { motion } from 'framer-motion' import { Language, PitchTeamMember } from '@/lib/types' import { t } from '@/lib/i18n' import { User, Linkedin, Github } from 'lucide-react' import GradientText from '../ui/GradientText' import FadeInView from '../ui/FadeInView' import Image from 'next/image' interface TeamSlideProps { lang: Language team: PitchTeamMember[] } function equityDisplay(pct: number | string | null | undefined): string { const n = Number(pct) if (!Number.isFinite(n)) return '—' return Number.isInteger(n) ? `${n}%` : `${n.toFixed(1)}%` } function detectProfileLink(url: string | null | undefined): { icon: typeof Linkedin | typeof Github; label: string } | null { if (!url) return null if (url.includes('github.com')) return { icon: Github, label: 'GitHub' } if (url.includes('linkedin.com')) return { icon: Linkedin, label: 'LinkedIn' } return { icon: Linkedin, label: 'Profile' } } export default function TeamSlide({ lang, team }: TeamSlideProps) { const i = t(lang) return (

{i.team.title}

{i.team.subtitle}

{team.map((member, idx) => { const link = detectProfileLink(member.linkedin_url) const LinkIcon = link?.icon return ( {/* Header: avatar + name + role */}
{member.photo_url ? (
{member.name}
) : (
)}

{member.name}

{link && LinkIcon && ( )}

{lang === 'de' ? member.role_de : member.role_en}

{/* Equity pill in top-right */}
{i.team.equity}
{equityDisplay(member.equity_pct)}
{/* Bio */}

{lang === 'de' ? member.bio_de : member.bio_en}

{/* Expertise tags */} {(member.expertise || []).length > 0 && (
{(member.expertise || []).map((skill, sidx) => ( {skill} ))}
)}
) })}
) }