'use client' import { motion } from 'framer-motion' import { Language, PitchFunding } from '@/lib/types' import { t } from '@/lib/i18n' import GradientText from '../ui/GradientText' import FadeInView from '../ui/FadeInView' import AnimatedCounter from '../ui/AnimatedCounter' import GlassCard from '../ui/GlassCard' import { Target, Calendar, FileText } from 'lucide-react' import { PieChart, Pie, Cell, ResponsiveContainer, Tooltip } from 'recharts' interface TheAskSlideProps { lang: Language funding: PitchFunding } const COLORS = ['#6366f1', '#a78bfa', '#60a5fa', '#34d399', '#fbbf24'] function formatFundingAmount(amount: number): { target: number; suffix: string } { if (amount >= 1_000_000) { return { target: Math.round(amount / 100_000) / 10, suffix: ' Mio.' } } if (amount >= 1_000) { return { target: Math.round(amount / 1_000), suffix: 'k' } } return { target: amount, suffix: '' } } function formatTargetDate(dateStr: string, lang: Language): string { if (!dateStr) return 'TBD' try { const d = new Date(dateStr) const quarter = Math.ceil((d.getMonth() + 1) / 3) return `Q${quarter} ${d.getFullYear()}` } catch { return dateStr } } export default function TheAskSlide({ lang, funding }: TheAskSlideProps) { const i = t(lang) const useOfFunds = funding?.use_of_funds || [] const amount = funding?.amount_eur || 0 const { target, suffix } = formatFundingAmount(amount) const pieData = useOfFunds.map((item) => ({ name: lang === 'de' ? item.label_de : item.label_en, value: item.percentage, })) return (

{i.theAsk.title}

{i.theAsk.subtitle}

{/* Main Number — dynamisch aus funding.amount_eur */}

EUR

{/* Details — dynamisch aus funding-Objekt */}

{i.theAsk.instrument}

{funding?.instrument || 'SAFE'}

{i.theAsk.targetDate}

{formatTargetDate(funding?.target_date, lang)}

{lang === 'de' ? 'Runde' : 'Round'}

{funding?.round_name || 'Pre-Seed'}

{/* Use of Funds */}

{i.theAsk.useOfFunds}

{/* Pie Chart */}
{pieData.map((_, idx) => ( ))} `${value}%`} />
{/* Legend */}
{useOfFunds.map((item, idx) => (
{lang === 'de' ? item.label_de : item.label_en} {item.percentage}% {((amount * item.percentage) / 100).toLocaleString('de-DE')} EUR
))}
) }