import Circle from "@/components/icons/Circle" import Triangle from "@/components/icons/Triangle" import Square from "@/components/icons/Square" import Rhombus from "@/components/icons/Rhombus" import AnswerButton from "../../AnswerButton" import { useSocketContext } from "@/context/socket" import Image from "next/image" import { useEffect, useRef, useState } from "react" import clsx from "clsx" const answersColors = [ "bg-red-500", "bg-blue-500", "bg-yellow-500", "bg-green-500", ] const answersIcons = [Triangle, Rhombus, Circle, Square] const calculatePercentages = (objectResponses) => { const keys = Object.keys(objectResponses) const values = Object.values(objectResponses) if (!values.length) { return [] } const totalSum = values.reduce( (accumulator, currentValue) => accumulator + currentValue, 0, ) let result = {} keys.map((key) => { result[key] = ((objectResponses[key] / totalSum) * 100).toFixed() + "%" }) console.log(result) return result } export default function Answers({ data: { question, answers, image, time, responses, correct }, }) { const { socket } = useSocketContext() const [percentages, setPercentages] = useState([]) const [cooldown, setCooldown] = useState(time) const [totalAnswer, setTotalAnswer] = useState(0) useEffect(() => { if (!responses) { return } setPercentages(calculatePercentages(responses)) }, [responses]) socket.on("game:cooldown", (sec) => { setCooldown(sec) }) socket.on("game:playerAnswer", (count) => { setTotalAnswer(count) }) return (