import { createColumnHelper } from '@tanstack/react-table'; import dayjs from 'dayjs'; import { TTransactionsList } from '@/domains/transactions/fetchers'; import { Button, buttonVariants } from '@/common/components/atoms/Button/Button'; import { useEllipsesWithTitle } from '@/common/hooks/useEllipsesWithTitle/useEllipsesWithTitle'; import { titleCase } from 'string-ts'; import { ctw } from '@/common/utils/ctw/ctw'; import { ChevronDown } from 'lucide-react'; import React from 'react'; import { TextWithNAFallback } from '@ballerine/ui'; const columnHelper = createColumnHelper(); export const columns = [ columnHelper.display({ id: 'collapsible', cell: ({ row }) => ( ), }), columnHelper.accessor('transactionDate', { cell: info => { const dateValue = info.getValue(); const date = dayjs(dateValue).local().format('MMM DD, YYYY'); const time = dayjs(dateValue).local().format('hh:mm'); return (
{date} {time}
); }, header: 'Date & Time', }), columnHelper.accessor('transactionCorrelationId', { cell: info => { // eslint-disable-next-line react-hooks/rules-of-hooks -- ESLint doesn't like `cell` not being `Cell`. const { ref, styles } = useEllipsesWithTitle(); const transactionId = info.getValue(); return (
{transactionId}
); }, header: 'Transaction', }), columnHelper.accessor('transactionDirection', { cell: info => { const direction = info.getValue() ?? ''; return {titleCase(direction)}; }, header: 'Direction', }), columnHelper.accessor('transactionBaseAmount', { cell: info => { const transactionBaseAmount = info.getValue(); return {transactionBaseAmount}; }, header: 'Amount', }), columnHelper.accessor('counterpartyOriginatorName', { cell: info => { const counterpartyOriginatorName = info.getValue(); return ( {counterpartyOriginatorName} ); }, header: 'Originator Name', }), columnHelper.accessor('counterpartyOriginatorCorrelationId', { cell: info => { const counterpartyOriginatorCorrelationId = info.getValue(); return ( {counterpartyOriginatorCorrelationId} ); }, header: 'Originator ID', }), columnHelper.accessor('counterpartyBeneficiaryName', { cell: info => { const counterpartyBeneficiaryName = info.getValue(); return ( {counterpartyBeneficiaryName} ); }, header: 'Beneficiary Name', }), columnHelper.accessor('counterpartyBeneficiaryCorrelationId', { cell: info => { const counterpartyBeneficiaryCorrelationId = info.getValue(); return ( {counterpartyBeneficiaryCorrelationId} ); }, header: 'Beneficiary ID', }), columnHelper.accessor('paymentMethod', { cell: info => { const paymentMethod = info.getValue() ?? ''; return ( {titleCase(paymentMethod)} ); }, header: 'Payment Method', }), ];