import React, { useCallback } from 'react'; import { CloudLoadingIndicator } from 'components'; import classNames from 'classnames'; import { FormattedMessage as T } from 'components'; import { CLASSES } from 'common/classes'; import { DataTableEditable } from 'components'; import { usePaymentMadeEntriesTableColumns } from './components'; import { usePaymentMadeInnerContext } from './PaymentMadeInnerProvider'; import { compose, updateTableCell } from 'utils'; import { useFormikContext } from 'formik'; /** * Payment made items table. */ export default function PaymentMadeEntriesTable({ onUpdateData, entries, currencyCode, }) { // Payment made inner context. const { isNewEntriesFetching } = usePaymentMadeInnerContext(); // Payment entries table columns. const columns = usePaymentMadeEntriesTableColumns(); // Formik context. const { values: { vendor_id }, } = useFormikContext(); // Handle update data. const handleUpdateData = useCallback( (rowIndex, columnId, value) => { const newRows = compose(updateTableCell(rowIndex, columnId, value))( entries, ); onUpdateData(newRows); }, [onUpdateData, entries], ); // Detarmines the right no results message before selecting vendor and aftering // selecting vendor id. const noResultsMessage = vendor_id ? ( ) : ( ); return ( ); }