import { useState, useEffect } from "react"; import moment from "moment-jalaali"; import ArrowLeftB from "@/components/icons/ArrowLeftB"; import { Button, MenuItem, Select, FormControl, InputLabel } from "@mui/material"; import ButtonFixed from "./ButtonFixed"; import { request } from "@/services/response"; function Paying({ setStep, appointmentId, expiresAt, doctor, selectedSlot, selectedDate }) { const [selectedBank, setSelectedBank] = useState(""); const [loading, setLoading] = useState(false); const computeLeft = () => expiresAt ? Math.max(0, Math.floor((expiresAt * 1000 - Date.now()) / 1000)) : 900; const [timeLeft, setTimeLeft] = useState(computeLeft); const banks = [ { id: "mellat", title: "بانک ملت" }, { id: "sep", title: "سامان (سپ)" } ]; useEffect(() => { const timer = setInterval(() => { setTimeLeft(computeLeft()); }, 1000); return () => clearInterval(timer); }, [expiresAt]); const formatTime = (seconds) => { const minutes = Math.floor(seconds / 60); const secs = seconds % 60; return `${minutes}:${secs.toString().padStart(2, '0')}`; }; const handlePayment = async () => { if (!selectedBank) { alert("لطفا بانک خود را انتخاب کنید"); return; } if (!appointmentId) { alert("شناسه نوبت یافت نشد"); return; } setLoading(true); try { const paymentPayload = { appointment_uuid: appointmentId, gateway: selectedBank, frontend_address: `${window.location.origin}/payment/result`, }; const res = await request.postAppointmentPayment(paymentPayload); const redirectUrl = res?.data?.redirect_url; if (redirectUrl) { window.location.href = redirectUrl; } else { setStep((prev) => prev + 1); } } catch (error) { console.error("Payment error:", error); alert("خطا در پرداخت"); setLoading(false); } }; return (

اطلاعات پرداخت

{selectedSlot?.start && (
زمان نوبت: {moment.unix(selectedSlot.start).locale("fa").format("jD jMMMM jYYYY - HH:mm")} {doctor?.name ? ` با ${doctor.name}` : ""}
)}

زمان باقیمانده:

{formatTime(timeLeft)}

انتخاب بانک {/*

مبلغ پیش پرداخت (بیعانه) :

10،000 تومان

*/}
{timeLeft === 0 && (

مهلت پرداخت تمام شد؛ لطفاً دوباره زمان نوبت را انتخاب کنید.

)}
{timeLeft === 0 ? ( ) : ( )}
); } export default Paying;