import useTable from '~/components/IVTable/useTable'
import useDisplayTableState from './useDisplayTableState'
import useTableSerializer from '~/components/IVTable/useTableSerializer'
import { RCTResponderProps } from '~/components/RenderIOCall'
import IVTable from '~/components/IVTable'
import ComponentHelpText from '~/components/HelpText'
// IVTable also has an empty state, but we want a different UI for empty tables in the transaction UI.
export function TransactionTableEmptyState({ message }: { message?: string }) {
return (
{message ?? 'There are no items to display.'}
)
}
export default function DisplayTable(
props: RCTResponderProps<'DISPLAY_TABLE'>
) {
const { data, columns } = useTableSerializer(props)
const table = useTable({
data,
columns,
isDownloadable: !props.isAsync,
defaultPageSize:
props.defaultPageSize ?? (props.orientation === 'vertical' ? 5 : 20),
totalRecords: props.totalRecords,
isRemote: props.isAsync || 'totalRecords' in props,
shouldCacheRecords: !props.isAsync,
isSortable: props.isSortable ?? true,
isFilterable: props.isFilterable ?? true,
})
useDisplayTableState(table, props)
return (
{props.label}
{props.helpText && (
{props.helpText}
)}
)
}