import { useState, useEffect } from "react"; import { Link } from "react-router-dom"; import { Calendar, CreditCard } from "lucide-react"; const Transactions = () => { const [transactions, setTransactions] = useState([]); useEffect(() => { const fetchTransactions = async () => { try { const response = await fetch( "http://localhost:3030/api/transaction/getAllTransactions" ); if (!response.ok) throw new Error(`HTTP ${response.status}`); const { transactions: txData } = await response.json(); if (!Array.isArray(txData)) { console.error("Expected an array but got:", txData); return; } const transformed = txData.map((tx) => ({ id: tx.TransactionID, productId: tx.ProductID, name: tx.ProductName, price: tx.Price != null ? parseFloat(tx.Price) : null, image: tx.image_url || "/default-image.jpg", date: tx.Date, status: tx.PaymentStatus, })); setTransactions(transformed); } catch (error) { console.error("Failed to fetch transactions:", error); } }; fetchTransactions(); }, []); const formatDate = (dateString) => { const d = new Date(dateString); return d.toLocaleDateString("en-US", { year: "numeric", month: "short", day: "numeric", }); }; return (
Once transactions are created, they’ll appear here.
Browse Listings${tx.price.toFixed(2)}
)}Status: {tx.status}