'use client'; import { useEffect, useState } from 'react'; import { useRouter } from 'next/navigation'; import { motion, AnimatePresence } from 'motion/react'; import { AlertTriangle, Sparkles, Key, X, ArrowRight } from 'lucide-react'; import { useLanguage } from '@/lib/i18n'; interface InlinePaywallProps { feature: string; onDismiss: () => void; } export function InlinePaywall({ feature, onDismiss }: InlinePaywallProps) { const { t } = useLanguage(); const router = useRouter(); const [timeLeft, setTimeLeft] = useState(10); useEffect(() => { if (timeLeft <= 0) { onDismiss(); return; } const timer = setTimeout(() => { setTimeLeft((prev) => prev - 1); }, 1000); return () => clearTimeout(timer); }, [timeLeft, onDismiss]); const handleUpgrade = () => { router.push('/settings/billing'); onDismiss(); }; const handleByok = () => { router.push('/settings/ai#byok'); onDismiss(); }; const featureLabels: Record = { semantic_search: t('usageMeter.featureSearch') || 'Recherche Sémantique', auto_tag: t('usageMeter.featureTags') || 'Tags Automatiques', auto_title: t('usageMeter.featureTitles') || 'Titres Automatiques', reformulate: t('usageMeter.featureReformulate') || 'Reformulation', chat: t('usageMeter.featureChat') || 'Chat IA', brainstorm_create: t('usageMeter.featureBrainstormCreate') || 'Création de Brainstorm', brainstorm_expand: t('usageMeter.featureBrainstormExpand') || 'Expansion de Brainstorm', brainstorm_enrich: t('usageMeter.featureBrainstormEnrich') || 'Enrichissement de Brainstorm', }; const currentFeatureLabel = featureLabels[feature] || feature; return (

{t('quotaPaywall.title') || 'Limite mensuelle atteinte'}

{(t('quotaPaywall.description') || "Vous avez épuisé vos crédits pour la fonctionnalité {feature} ce mois-ci.").replace('{feature}', currentFeatureLabel)}

Fermeture dans {timeLeft}s
); }