import { useEffect, useState } from "react";
import { createPortal } from "react-dom";
import { useNavigate } from "react-router-dom";
import Icon from "../components/Icon";
import {
fetchMyReservationByUuid,
fetchMyReservations,
MyReservation,
} from "../services/campaignApi";
import { formatPersianNumber } from "../utils/formatNumber";
import GuestBanner from "../assets/images/banners/Guest-banner.jpg";
function formatReservationDateTime(iso: string): string {
return new Intl.DateTimeFormat("fa-IR", {
weekday: "long",
day: "numeric",
month: "long",
hour: "2-digit",
minute: "2-digit",
}).format(new Date(iso));
}
function MyReservationCard({
reservation,
onClick,
}: {
reservation: MyReservation;
onClick: () => void;
}) {
return (
);
}
function DetailRow({ label, value }: { label: string; value: string }) {
return (
{label}
{value}
);
}
function ReservationDetailModal({
uuid,
onClose,
}: {
uuid: string;
onClose: () => void;
}) {
const [reservation, setReservation] = useState(null);
useEffect(() => {
const previousOverflow = document.body.style.overflow;
document.body.style.overflow = "hidden";
return () => {
document.body.style.overflow = previousOverflow;
};
}, []);
useEffect(() => {
fetchMyReservationByUuid(uuid)
.then(setReservation)
.catch(() => {});
}, [uuid]);
return createPortal(
e.stopPropagation()}
>
جزئیات رزرو
{reservation && (
)}
کد رزرو را برای ورود نزد خود نگه دارید. اطلاعات رزرو و کد ورود در
بخش رزروها قابل مشاهده است.
,
document.body,
);
}
export default function MyReservations() {
const navigate = useNavigate();
const [reservations, setReservations] = useState([]);
const [selectedUuid, setSelectedUuid] = useState(null);
useEffect(() => {
fetchMyReservations()
.then(setReservations)
.catch(() => {});
}, []);
return (
{reservations.map((reservation) => (
setSelectedUuid(reservation.uuid)}
/>
))}
{selectedUuid && (
setSelectedUuid(null)}
/>
)}
);
}