import React, { useState, useEffect, useRef } from "react"; import { ColorRing } from "react-loader-spinner"; import jsQR from "jsqr"; import QRCode from "qrcode.react"; import styles from "./Transactions.module.css"; import { getImageUrl } from "../helpers/itemHelper"; import { useSearchParams } from "react-router-dom"; import { getTransaction, handleConfirmHasPaid, } from "../helpers/transactionHelpers"; export default function Transaction_pending() { const [searchParams] = useSearchParams(); const [transaction, setTransaction] = useState(null); useEffect(() => { const transactionId = searchParams.get("transactionId") || ""; const fetchData = async () => { try { const fetchedTransaction = await getTransaction(transactionId); setTransaction(fetchedTransaction); console.log(transaction); } catch (error) { console.error("Error fetching transaction:", error); } }; fetchData(); }, [searchParams]); const calculateTotalPrice = (detailedTransactions) => { if (!Array.isArray(detailedTransactions)) return 0; return detailedTransactions.reduce((total, dt) => { if ( dt.Item && typeof dt.Item.price === "number" && typeof dt.qty === "number" ) { return total + dt.Item.price * dt.qty; } return total; }, 0); }; return (

Payment Claimed

{transaction && (

Transaction ID: {transaction.transactionId}

Payment Type: {transaction.payment_type}

    {transaction.DetailedTransactions.map((detail) => (
  • {detail.Item.name} - {detail.qty} x Rp{" "} {detail.Item.price}
  • ))}

{transaction.serving_type === "pickup" ? "Self pickup" : `Serve to ${ transaction.Table ? transaction.Table.tableNo : "N/A" }`}

Total: Rp {calculateTotalPrice(transaction.DetailedTransactions)}
{transaction.confirmed == 0 && (
decline
)}
)}
); }