"use client"; import { useState } from "react"; import { useRouter } from "next/navigation"; type LotteryButtonProps = { quizId: string; goldWinnersCount: number; silverWinnersCount: number; bronzeWinnersCount: number; totalParticipants: number; perfectParticipants: number; }; export default function LotteryButton({ quizId, goldWinnersCount, silverWinnersCount, bronzeWinnersCount, totalParticipants, perfectParticipants, }: LotteryButtonProps) { const [loading, setLoading] = useState(false); const [result, setResult] = useState(null); const [open, setOpen] = useState(false); const router = useRouter(); const correctPercentage = totalParticipants > 0 ? Math.round((perfectParticipants / totalParticipants) * 100) : 0; const incorrectParticipants = Math.max(totalParticipants - perfectParticipants, 0); const totalWinnersCount = goldWinnersCount + silverWinnersCount + bronzeWinnersCount; async function run() { setLoading(true); const res = await fetch(`/api/admin/quiz/${quizId}/lottery`, { method: "POST" }); const data = await res.json(); if (res.ok) { setResult(`${data.winners.length} برنده انتخاب شد`); setOpen(false); router.refresh(); } else { setResult(data.error ?? "خطا"); } setLoading(false); } return ( <>
{result && {result}}
{open && (

تایید قرعه‌کشی

با اجرای قرعه‌کشی، پاسخ دادن به این کوییز بسته می‌شود و دیگر امکان ویرایش سوال‌ها وجود ندارد.

کل شرکت‌کنندگان
{totalParticipants}
واجد دریافت کارت
{perfectParticipants} نفر
{correctPercentage}%
سایر شرکت‌کنندگان
{incorrectParticipants} نفر
{Math.max(100 - correctPercentage, 0)}%
تعداد برنده
{totalWinnersCount} نفر
G:{goldWinnersCount} | S:{silverWinnersCount} | B:{bronzeWinnersCount}
)} ); }