import { useCallback, useMemo } from "react"; import type { Transaction } from "../../types/api"; import styles from "./TransactionsTable.module.css"; import classNames from "classnames"; export type TransactionsTableProps = { transactions: Transaction[]; deselected: number[]; deselect: (index: number) => void; select: (index: number) => void; readonly?: boolean; } const transactionEmoji = (transaction: Transaction): string => { if (transaction.kind === 'transfer') { return '➡️' }; return transaction.amount > 0 ? '⬇️' : '⬆️'; }; const transactionType = (transaction: Transaction): string => { if (transaction.kind === 'transfer') { return 'Transfer' }; return transaction.amount > 0 ? 'Inflow' : 'Outflow'; }; export default function TransactionsTable({ transactions, deselected, deselect, select, readonly }: TransactionsTableProps) { const changeSelection = useCallback((index: number) => { if (readonly) { return; } if(deselected.includes(index)) { select(index); } else { deselect(index); } }, [deselected, deselect, select]); const reversedTransactions = useMemo(() => transactions.slice().reverse(), [transactions]); const renderRow = useCallback((transaction: Transaction, index: number) => (