"use client"; import React, { useState } from "react"; const ModeratorRequestModal = ({ request, onClose, onApprove, onReject }) => { const [showRejectPopup, setShowRejectPopup] = useState(false); const [rejectReason, setRejectReason] = useState(""); const isApproved = request.status === "Принята"; const isRejected = request.status === "Отклонена"; const isPending = !isApproved && !isRejected; // на модерации const handleApprove = () => { onApprove?.({ ...request, status: "Принята" }); onClose(); }; const handleRejectConfirm = () => { onReject?.({ ...request, status: "Отклонена", rejectReason: rejectReason, }); setShowRejectPopup(false); onClose(); }; return ( <> {/* основной экран модерации во весь экран */}
{/* хедер */}

Заявка от {request.date || "28.11.25"}

{/* белая карточка во всю ширину контейнера */}
{/* верхняя полоса: Описание + Дата + Время */}
Описание
Дата {request.date || "28.11.2025"}
Время {request.time || "13:00"}
{/* блок ФИО / адрес */}
ФИО

{request.fullName || "Клавдия Березова"}

{request.address || "г. Пермь, ул. Ленина 50"}

{/* статус + сроки */}
{isApproved ? "Принята" : isRejected ? "Отклонена" : "Модерация"}
До {request.deadline || "28.11.2025"} {request.deadlineTime || "13:00"}
{/* Заголовок задачи */}

{request.title || "Приобрести продукты пенсионерке"}

{/* краткое описание / товары */} {request.description && (

{request.description}

)} {/* если заявка уже отклонена — показать причину */} {isRejected && (

Причина отклонения

{request.rejectReason && request.rejectReason.trim().length > 0 ? request.rejectReason : "Причина не указана"}

)}
{/* нижняя панель с кнопками — только если заявка ещё на модерации */} {isPending && (
)}
{/* попап причины отказа во весь экран */} {showRejectPopup && (
{/* заголовок */}

Причина

{/* голубой блок с текстом */}