WIPVOLONT

This commit is contained in:
fullofempt
2025-12-14 21:14:55 +05:00
parent 433b9e896c
commit 0df52352a8
12 changed files with 893 additions and 440 deletions

View File

@@ -4,7 +4,8 @@ import React, { useState } from "react";
import { FaStar } from "react-icons/fa";
const RequestDetailsModal = ({ request, onClose }) => {
const isDone = request.rawStatus === "completed" || request.status === "Выполнена";
const isDone =
request.rawStatus === "completed" || request.status === "Выполнена";
const isInProgress =
request.rawStatus === "in_progress" || request.status === "В процессе";
@@ -42,6 +43,15 @@ const RequestDetailsModal = ({ request, onClose }) => {
const place = [request.address, request.city].filter(Boolean).join(", ");
const requesterName = request.requesterName || "Заявитель";
const createdDate = request.date || "";
const createdTime = request.time || "";
// ВЫПОЛНИТЬ ДО: берём дату из заявки
let deadlineText = "—";
if (request.desiredCompletionDate) {
const d = new Date(request.desiredCompletionDate);
deadlineText = d.toLocaleDateString("ru-RU");
}
return (
<div className="fixed inset-0 z-40 flex flex-col bg-[#90D2F9] px-4 pt-4 pb-20">
@@ -73,10 +83,10 @@ const RequestDetailsModal = ({ request, onClose }) => {
</span>
<div className="text-right leading-tight">
<p className="font-montserrat text-[10px] text-black">
{request.date}
{createdDate}
</p>
<p className="font-montserrat text-[10px] text-black">
{request.time}
{createdTime}
</p>
</div>
</div>
@@ -92,9 +102,11 @@ const RequestDetailsModal = ({ request, onClose }) => {
<p>Заявитель: {request.requesterName || requesterName}</p>
<p>Адрес: {place || "Не указан"}</p>
{urgencyText && <p>Срочность: {urgencyText}</p>}
{/* НОВОЕ: строка "Выполнить до" */}
<p>Выполнить до: {deadlineText}</p>
</div>
{/* Описание / список покупок */}
{/* Описание */}
{request.description && (
<div className="bg-[#E4E4E4] rounded-2xl px-3 py-2 max-h-[140px] overflow-y-auto">
<p className="text-[11px] leading-[13px] font-montserrat whitespace-pre-line">
@@ -103,7 +115,7 @@ const RequestDetailsModal = ({ request, onClose }) => {
</div>
)}
{/* Блок отзыва + рейтинг — и для Выполнена, и для В процессе */}
{/* Отзыв и рейтинг */}
{(isDone || isInProgress) && (
<>
<div className="bg-[#72B8E2] rounded-3xl p-3 flex flex-col gap-2">
@@ -114,7 +126,7 @@ const RequestDetailsModal = ({ request, onClose }) => {
value={review}
onChange={(e) => setReview(e.target.value)}
rows={4}
className="w-full bg-[#72B8E2] rounded-2xl px-3 py-2 text-sm font-montserrat text-white placeholder:text.white/70 outline-none resize-none border border-white/20"
className="w-full bg-[#72B8E2] rounded-2xl px-3 py-2 text-sm font-montserrat text-white placeholder:text-white/70 outline-none resize-none border border-white/20"
placeholder={
isDone
? "Напишите, как прошла помощь"
@@ -123,7 +135,7 @@ const RequestDetailsModal = ({ request, onClose }) => {
/>
</div>
<div className="mt-1 flex flex-col items-center gap-2">
<div className="mt-1 flex flex-col.items-center gap-2">
<p className="font-montserrat font-semibold text-[14px] text-black">
Оценить заявителя
</p>
@@ -150,12 +162,11 @@ const RequestDetailsModal = ({ request, onClose }) => {
</div>
</div>
{/* Кнопка внизу */}
{(isDone || isInProgress) && (
<button
type="button"
onClick={handleSubmit}
className="mt-4 w-full max-w-[360px] mx-auto bg-[#94E067] rounded-2xl py-3 flex.items-center justify-center"
className="mt-4 w-full max-w-[360px] mx-auto bg-[#94E067] rounded-2xl py-3 flex items-center justify-center"
>
<span className="font-montserrat font-extrabold text-[16px] text-white">
{isDone ? "Оставить отзыв" : "Сохранить прогресс"}