'use client'; import { useState, useEffect } from 'react'; import { X, Zap } from 'lucide-react'; import { useLocale, useTranslations } from 'next-intl'; import Link from 'next/link'; import { formatCompactNumber } from '@/lib/format-number'; export function BetaBanner() { const [isVisible, setIsVisible] = useState(false); const [skillCount, setSkillCount] = useState(null); const locale = useLocale(); const t = useTranslations('banner'); useEffect(() => { const dismissed = localStorage.getItem('promo-banner-dismissed'); if (!dismissed) { setIsVisible(true); } fetch('/api/stats') .then((res) => res.json()) .then((data) => { if (data.totalSkills) { setSkillCount(formatCompactNumber(data.totalSkills, locale)); } }) .catch(() => {}); }, [locale]); const handleDismiss = () => { setIsVisible(false); localStorage.setItem('promo-banner-dismissed', 'true'); }; if (!isVisible) return null; const count = skillCount || (locale === 'fa' ? '۱۶k' : '16k'); return (
{t('text', { count })} | {t('feedback')}
); }