'use client'; import { motion } from 'framer-motion'; import { Users, FileText, MessageSquare, Eye, ShieldCheck, AlertTriangle, Coins, Activity } from 'lucide-react'; export interface StatStripProps { members: number; posts: number; comments: number; visitsToday: number; visitsTotal: number; guarantees: number; muktiReports: number; pointsCirculating: number; } const fmt = (n: number) => n.toLocaleString(); const compact = (n: number) => n >= 1_000_000_000 ? (n / 1_000_000_000).toFixed(1) + 'B' : n >= 1_000_000 ? (n / 1_000_000).toFixed(1) + 'M' : n >= 1_000 ? (n / 1_000).toFixed(1) + 'K' : String(n); export default function StatStrip({ members, posts, comments, visitsToday, visitsTotal, guarantees, muktiReports, pointsCirculating }: StatStripProps) { const stats = [ { icon: Users, label: '활성 회원', value: fmt(members), sub: '실가입', tone: 'from-violet-500 to-fuchsia-600' }, { icon: FileText, label: '누적 게시글', value: compact(posts), sub: `자유게시판`, tone: 'from-sky-500 to-blue-700' }, { icon: MessageSquare, label: '전체 댓글', value: compact(comments), sub: '커뮤니티', tone: 'from-emerald-500 to-teal-600' }, { icon: Eye, label: '오늘 방문', value: compact(visitsToday), sub: `누적 ${compact(visitsTotal)}`, tone: 'from-amber-500 to-orange-600' }, { icon: ShieldCheck, label: '보증 사이트', value: fmt(guarantees), sub: '검수 완료', tone: 'from-green-500 to-emerald-700' }, { icon: AlertTriangle, label: '먹튀 신고', value: fmt(muktiReports), sub: '신고 누적', tone: 'from-rose-500 to-red-700' }, { icon: Coins, label: '유통 포인트', value: compact(pointsCirculating), sub: 'p', tone: 'from-yellow-500 to-amber-700' }, { icon: Activity, label: '실시간', value: 'LIVE', sub: '24/7 모니터링', tone: 'from-pink-500 to-rose-600' }, ]; return (
{stats.map((s, i) => { const Icon = s.icon; return (
{s.sub}
{s.value}
{s.label}
); })}
); }