// @ts-nocheck import React from 'react'; import intl from 'react-intl-universal'; import { Checkbox, Intent, PopoverInteractionKind, Position, Tag, Tooltip, } from '@blueprintjs/core'; import { useAddTransactionsToCategorizeSelected, useIsTransactionToCategorizeSelected, useRemoveTransactionsToCategorizeSelected, } from '@/hooks/state/banking'; import { Box, Icon } from '@/components'; import styles from './AccountTransactionsUncategorizedTable.module.scss'; function statusAccessor(transaction) { return transaction.is_recognized ? ( {transaction.assigned_category_formatted} {transaction.assigned_account_name} } > Recognized ) : null; } interface TransactionSelectCheckboxProps { transactionId: number; } function TransactionSelectCheckbox({ transactionId, }: TransactionSelectCheckboxProps) { const addTransactionsToCategorizeSelected = useAddTransactionsToCategorizeSelected(); const removeTransactionsToCategorizeSelected = useRemoveTransactionsToCategorizeSelected(); const isTransactionSelected = useIsTransactionToCategorizeSelected(transactionId); const handleChange = (event) => { isTransactionSelected ? removeTransactionsToCategorizeSelected(transactionId) : addTransactionsToCategorizeSelected(transactionId); }; return ( ); } /** * Retrieve account uncategorized transctions table columns. */ export function useAccountUncategorizedTransactionsColumns() { return React.useMemo( () => [ { id: 'date', Header: intl.get('date'), accessor: 'formatted_date', width: 40, clickable: true, textOverview: true, }, { id: 'description', Header: 'Description', accessor: 'description', width: 160, textOverview: true, clickable: true, }, { id: 'payee', Header: 'Payee', accessor: 'payee', width: 60, clickable: true, textOverview: true, }, { id: 'reference_number', Header: 'Ref.#', accessor: 'reference_no', width: 50, clickable: true, textOverview: true, }, { id: 'status', Header: 'Status', accessor: statusAccessor, }, { id: 'deposit', Header: intl.get('cash_flow.label.deposit'), accessor: 'formatted_deposit_amount', width: 40, className: 'deposit', textOverview: true, align: 'right', clickable: true, }, { id: 'withdrawal', Header: intl.get('cash_flow.label.withdrawal'), accessor: 'formatted_withdrawal_amount', className: 'withdrawal', width: 40, textOverview: true, align: 'right', clickable: true, }, { id: 'categorize_include', Header: '', accessor: (value) => ( ), width: 20, minWidth: 20, maxWidth: 20, align: 'right', className: 'categorize_include selection-checkbox', }, ], [], ); }