in packages/eui/src/components/basic_table/basic_table.tsx [571:616]
renderTableMobileSort() {
const { columns, sorting } = this.props;
const items: EuiTableSortMobileProps['items'] = [];
if (!sorting) {
return null;
}
columns.forEach((column: EuiBasicTableColumn<T>, index: number) => {
if (
(column as EuiTableFieldDataColumnType<T>).field &&
sorting.sort &&
!!sorting.enableAllColumns &&
(column as EuiTableFieldDataColumnType<T>).sortable == null
) {
column = {
...(column as EuiTableFieldDataColumnType<T>),
sortable: true,
};
}
if (
!(column as EuiTableFieldDataColumnType<T>).sortable ||
(column as EuiTableFieldDataColumnType<T>)?.mobileOptions?.show ===
false
) {
return;
}
const sortDirection = this.resolveColumnSortDirection(column);
items.push({
name: column.name,
key: `_data_s_${String(
(column as EuiTableFieldDataColumnType<T>).field
)}_${index}`,
onSort: this.resolveColumnOnSort(column),
isSorted: !!sortDirection,
isSortAscending: sortDirection
? SortDirection.isAsc(sortDirection)
: undefined,
});
});
return items.length ? <EuiTableSortMobile items={items} /> : null;
}