import { Button, Card, Form, Image, Layout, QRCode, Skeleton, message, } from "antd"; import ProHeader from "components/ProHeader/ProHeader"; import ProText from "components/ProText"; import { useTranslation } from "react-i18next"; import { useNavigate, useParams } from "react-router-dom"; import { useGetRedeemDetailsQuery } from "redux/api/others"; import styles from "./redeem.module.css"; import CopyIcon from "components/Icons/CopyIcon"; import { LocationCard } from "./components/LocationCard.tsx"; import { GiftItemsCard } from "./components/GiftItemsCard.tsx"; import { VoucherBalanceCard } from "./components/VoucherBalanceCard.tsx"; import { OrderType } from "pages/checkout/hooks/types.ts"; import { Loader } from "components/Loader/Loader.tsx"; import { CollectWay } from "pages/checkout/components/CollectWay/CollectWay.tsx"; import PickupTimeCard from "pages/checkout/components/pickupEstimate/TimeEstimateCard.tsx"; export default function RedeemPage() { const { t } = useTranslation(); const { voucherId } = useParams(); const navigate = useNavigate(); const { subdomain } = useParams(); const [form] = Form.useForm(); const { data: redeemDetails, isLoading } = useGetRedeemDetailsQuery( voucherId || "", { skip: !voucherId, }, ); const handleCheckout = () => { navigate(`/${subdomain}/menu?orderType=${OrderType.Redeem}`); }; const handleCopyVoucherCode = async () => { const voucherCode = redeemDetails?.gift?.voucher_code; if (voucherCode) { try { await navigator.clipboard.writeText(voucherCode); message.success( t("redeem.voucherCodeCopied") || "Voucher code copied!", ); } catch (error) { message.error(t("redeem.copyFailed") || "Failed to copy voucher code"); } } }; if (isLoading) return ; return ( <> {t("redeem.title")} {t("redeem.hiX", { name: redeemDetails?.gift?.recipient_name })} {t("redeem.youHaveReceivedAGiftCarFromX", { name: redeemDetails?.gift?.sender_name, })} {isLoading || !redeemDetails?.gift?.restaurant_iimage ? ( ) : ( )} {redeemDetails?.gift?.message || t("redeem.description")} {redeemDetails?.gift?.sender_name} {t("redeem.showThisCodeAtTheRestaurant")} } iconPlacement="end" onClick={handleCopyVoucherCode} > {redeemDetails?.gift?.voucher_code} {t("redeem.useThisCodeIfScanningNotPossible")} Active - Expires in 12 days {redeemDetails?.gift?.gift_type === "ORDER" && } {redeemDetails?.gift?.gift_type === "AMOUNT" && ( )} {t("redeem.redeemNow")} > ); }