import { sort } from 'fast-sort' import { getProp } from 'path-to-prop' import { SortState } from './tableInfo' export function sortRows(sortState: SortState, rows: Record[]): Record[] { if (!sortState || !sortState.length) return rows return sort(rows).by( sortState.map<{ [k in 'asc' | 'desc']: (rowData: Record) => any }>((s): any => { return { [s.direction]: (rowData: Record) => { const foundValue = getProp(rowData, s.id) if (s.parseValue) { return s.parseValue(foundValue, { formData: rowData }) } return foundValue }, } }) ) } export function a() { return 1 }