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} )}
) }