import React from 'react'; import { Lock, LogIn, ShieldAlert, UserCheck } from 'lucide-react'; import { Radar } from 'react-chartjs-2'; export default function ModeratorTab({ twitchConfigured, auth, handleLogin, TWITCH_CHANNEL, modProfiles, selectedMod, setSelectedMod }) { return (
{twitchConfigured && !auth.loggedIn ? (

Доступ Ограничен

Лог действий модераторов и статистика банов/удалений доступны только стримеру и официальным модераторам канала **winx_prinx**. Пожалуйста, авторизуйтесь через Twitch для проверки прав.

) : twitchConfigured && (auth.user?.role !== 'streamer' && auth.user?.role !== 'moderator' && auth.user?.role !== 'admin') ? (

Недостаточно прав

Вы успешно вошли как {auth.user?.displayName}, но вы не являетесь модератором канала {TWITCH_CHANNEL}.

) : (
{modProfiles.length <= 2 && (

Данные накапливаются

Информация о модераторах появляется по мере их активности в выбранном стриме.

)} {/* TOP 3 PODIUM */}
{modProfiles.slice(0, 3).map((mod, idx) => { const trophyColor = idx === 0 ? '#FFD700' : idx === 1 ? '#C0C0C0' : '#CD7F32'; const glowStyle = { border: `1px solid ${trophyColor}40`, boxShadow: `0 0 15px ${trophyColor}12`, position: 'relative', overflow: 'hidden' }; return (
#{idx + 1}
{idx === 0 ? '👑' : idx === 1 ? '🥈' : '🥉'}

{mod.moderator}

{idx === 0 ? 'Глава патруля' : idx === 1 ? 'Старший мод' : 'Защитник чата'}
Действий
{mod.total_actions}
Ср. Реакция
{mod.reaction_time_avg ? `${mod.reaction_time_avg}с` : '—'}
КПД Активности
{mod.scores.activity}%
); })}
{/* Left: Mod List */}

Рейтинг модераторов

{modProfiles.length === 0 ? (

Модераторы еще не совершали действий в этом периоде

) : (
{modProfiles.map((mod, idx) => ( setSelectedMod(mod)} style={{ cursor: 'pointer', background: selectedMod && selectedMod.moderator === mod.moderator ? 'rgba(163, 112, 247, 0.08)' : 'transparent', borderLeft: selectedMod && selectedMod.moderator === mod.moderator ? '3px solid var(--color-brand)' : 'none' }} > ))}
Ранг Никнейм Действий Ср. Реакция
#{idx + 1} {mod.moderator} {mod.total_actions} {mod.reaction_time_avg ? `${mod.reaction_time_avg}с` : '—'}
)}
{/* Right: Mod Dossier */}

Личное досье модератора

{!selectedMod ? (

Выберите модератора слева для просмотра досье

) : (

{selectedMod.moderator}

Анализ стиля модерирования и характеристик

{/* Radar chart */}
{/* Actions distribution */}

Распределение наказаний:

{selectedMod.bans_count > 0 && (
)} {selectedMod.timeouts_count > 0 && (
)} {selectedMod.deletions_count > 0 && (
)} {selectedMod.unbans_count > 0 && (
)}
{/* Legend */}
Баны ({selectedMod.bans_count})
Муты ({selectedMod.timeouts_count})
Удаления ({selectedMod.deletions_count})
Разбаны ({selectedMod.unbans_count})
)}
)}
); }