import { Layout, Image, Button, Form, Skeleton } from "antd";
import ProHeader from "components/ProHeader/ProHeader";
import { useTranslation } from "react-i18next";
import styles from "./CardDetails.module.css";
import ProText from "components/ProText";
import { useGetEGiftCardsQuery } from "redux/api/others";
import { selectCart } from "features/order/orderSlice";
import { useAppSelector } from "redux/hooks";
import { useState, useEffect, useCallback } from "react";
import BackIcon from "components/Icons/BackIcon";
import NextIcon from "components/Icons/NextIcon";
import cardStyles from "./CardDetails.module.css";
import ReceivernformationCard from "./components/ReceivernformationCard/ReceivernformationCard";
import SenderformationCard from "./components/SenderformationCard/SenderformationCard";
import TimeEstimateCard from "pages/cart/components/timeEstimate/TimeEstimateCard";
import { useNavigate, useParams } from "react-router-dom";
import GiftAmountCard from "./components/GiftAmountCard/GiftAmountCard";
import { GiftAmountBottomSheet } from "./components/GiftAmountBottomSheet";
export default function CardDetailsPage() {
const { t } = useTranslation();
const { data: cards, isLoading } = useGetEGiftCardsQuery();
const { giftDetails } = useAppSelector(selectCart);
const { isRTL } = useAppSelector((state) => state.locale);
const [currentIndex, setCurrentIndex] = useState(0);
const [isGiftAmountBottomSheetOpen, setIsGiftAmountBottomSheetOpen] =
useState(false);
const { subdomain } = useParams();
const navigate = useNavigate();
const [form] = Form.useForm();
// Find the initial index based on selected cardId from gift details
useEffect(() => {
if (cards && giftDetails?.cardId) {
const index = cards.findIndex(
(card) => card?.id?.toString() === giftDetails.cardId.toString(),
);
if (index !== -1) {
setCurrentIndex(index);
}
}
}, [cards, giftDetails?.cardId]);
const handlePrevious = () => {
if (cards && cards.length > 0) {
setCurrentIndex((prev) => (prev === 0 ? cards.length - 1 : prev - 1));
}
};
const handleNext = () => {
if (cards && cards.length > 0) {
setCurrentIndex((prev) => (prev === cards.length - 1 ? 0 : prev + 1));
}
};
const currentCard = cards && cards.length > 0 ? cards[currentIndex] : null;
const handleCheckout = useCallback(async () => {
try {
await form.validateFields();
navigate(`/${subdomain}/checkout`);
} catch (error) {
console.log(error);
}
}, [subdomain, form, navigate]);
return (
<>
{t("cardDetails.title")}
{t("cardDetails.addGiftDetails")}
{t("cardDetails.description")}
{isLoading || !currentCard ? (
) : (
)}
setIsGiftAmountBottomSheetOpen(false)}
/>
>
);
}