import { useEffect, useState } from "react"; import { PiDotsThreeOutlineVerticalFill } from "react-icons/pi"; import AccountNav from "./AccountNav"; import api from "../../config/api"; import { useNavigate, useParams } from "react-router-dom"; import { FaCheck } from "react-icons/fa"; interface Transaction { id: number; status: string; active: boolean; subject: string | null; createdAt: number; expireAfter: number | null; } const formatDate = (timestamp: number) => { return new Date(timestamp * 1000).toLocaleString(); }; const Account = () => { const { accountId } = useParams<{ accountId: string }>(); const [transactions, setTransactions] = useState([]); const [selectedTransactions, setSelectedTransactions] = useState([]); const fetchTransactions = async () => { try { const response = await api(`/api/accounts/${accountId}/transactions`); setTransactions(response.data || []); } catch (error) { console.error("Error fetching transactions:", error); } }; useEffect(() => { if (accountId) fetchTransactions(); }, [accountId]); const navigate = useNavigate(); const handleTransactionClick = (id: number) => { navigate(`/accounts/${accountId}/transactions/${id}`); }; return ( <> {transactions.length > 0 && (
{transactions.map((tx) => { const lastModifiedAt = new Date(tx.lastModifiedAt, "DD/MM/YYYY"); return ( handleTransactionClick(tx.id)} className="hover:bg-gray-50 cursor-pointer" > ) })}
Name Status Active Last Change Expire After (days)
{selectedTransactions.includes(tx.id) && ( )}
{tx.subject || "Untitled"} {tx.status} {tx.active ? "Yes" : "No"} {formatDate(tx.lastModifiedAt)} {tx.expireAfter ?? "-"}
)} ); }; export default Account;