import React, { useState, useEffect } from 'react'; import './ComparisonScreen.css'; const ComparisonScreen = ({ question, userAnswer, otherPlayers, currentQuestionNumber, totalQuestions, onContinue }) => { const [showConfetti, setShowConfetti] = useState(false); const [sortedPlayers, setSortedPlayers] = useState([]); useEffect(() => { // Если ответ правильный, показываем конфетти if (userAnswer.isCorrect === true) { setShowConfetti(true); setTimeout(() => setShowConfetti(false), 3000); } // Сортируем игроков по правильности ответа и времени const allPlayers = [ { name: "Вы", avatar: "👤", isCorrect: userAnswer.isCorrect, answerText: userAnswer.answerText, timeSpent: userAnswer.timeSpent, isUser: true }, ...otherPlayers ]; const sorted = allPlayers.sort((a, b) => { if (a.isCorrect === b.isCorrect) { return a.timeSpent - b.timeSpent; } return b.isCorrect ? 1 : -1; }); setSortedPlayers(sorted); }, [userAnswer, otherPlayers]); const getRankEmoji = (index) => { switch(index) { case 0: return "🥇"; case 1: return "🥈"; case 2: return "🥉"; default: return `${index + 1}️⃣`; } }; const getScoreChange = (isCorrect, timeSpent) => { if (isCorrect) { if (timeSpent < 10) return "+15 ⚡"; if (timeSpent < 20) return "+10 ✨"; return "+5 📝"; } return "0 ❌"; }; const getSpeedRating = (timeSpent) => { if (timeSpent < 10) return "Молниеносно! 🚀"; if (timeSpent < 20) return "Быстро ⚡"; if (timeSpent < 30) return "Средне 🐌"; return "Медленно 🐢"; }; return (
{question.text}