/
NoWay1co
/
AudioAnalytics
Обзор
Документация
Войти
/
NoWay1co
/
AudioAnalytics
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
frontend/src/components/StatCard.tsx
35 строк
1 KB
Ivan
Реструктуризация фронта + русификация значение на бэке для 1 графика в дашборде
23 янв 2026, 09:07
23 янв 2026, 09:07
1bba443
Код
Авторство
О чём код?
interface StatCardProps { label: string; value: string; helper?: string; trend?: number; accent?: 'primary' | 'success' | 'warning' | 'danger'; } export function StatCard({ label, value, helper, trend, accent = 'primary' }: StatCardProps) { const colors: Record<NonNullable<StatCardProps['accent']>, string> = { primary: 'bg-primary/10 text-primary', success: 'bg-success/10 text-success', warning: 'bg-warning/10 text-warning', danger: 'bg-danger/10 text-danger' }; return ( <div className="bg-white border border-slate-100 rounded-xl p-4 shadow-card flex flex-col gap-2 min-w-[180px]"> <p className="text-sm text-slate-500">{label}</p> <div className="flex items-center gap-2"> <p className="text-2xl font-semibold text-slate-900">{value}</p> {trend !== undefined && ( <span className={`text-xs px-2 py-1 rounded-full font-semibold ${ trend >= 0 ? colors.success : colors.danger }`} > {trend > 0 ? '+' : ''} {trend.toFixed(1)}% </span> )} </div> {helper && <p className="text-xs text-slate-500">{helper}</p>} </div> ); }