import React, { useEffect, useState } from 'react' import { PiDotsThreeOutlineVerticalFill } from 'react-icons/pi'; import api from '../../config/api'; import { Transaction } from '../transactions/Transactions'; import { useNavigate } from 'react-router-dom'; import { FaCheck } from 'react-icons/fa'; const formatDate = (timestamp: number) => { return new Date(timestamp * 1000).toLocaleString(); }; const TransactionDataTable = () => { const navigate = useNavigate() const [currentEmailId, setCurrentEmailId] = useState('null'); const [selectedTransactions, setSelectedTransactions] = useState([]); const [activeAccountId, setActiveAccountId] = useState( JSON.parse(sessionStorage.getItem('activeAccountId') || 'null') ); const fetchTransactions = async () => { console.log("fetchTransactions") try { const response = await api.get(`/api/accounts/${activeAccountId}/transactions?sortBy=lastModifiedAt desc`); setTransactions(response.data || []); } catch (error) { console.error("Error fetching transactions:", error); } }; const [transactions, setTransactions] = useState([]); const handleTransactionClick = (id: number) => { navigate(`/accounts/${activeAccountId}/transactions/${id}`); }; useEffect(() => { if (activeAccountId) { fetchTransactions(); } }, [activeAccountId]); useEffect(() => { const userDetails = JSON.parse(sessionStorage.getItem('userDetails')); setCurrentEmailId(userDetails?.email) }, []); 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) Sign Action
{selectedTransactions.includes(tx.id) && ( )}
{tx.subject || "Untitled"} {tx.status} {tx.active ? "Yes" : "No"} {formatDate(tx.lastModifiedAt)} {tx.expireAfter ?? "-"} {tx?.createdBy?.email === currentEmailId ? : "-"}
)} ) } export default TransactionDataTable