Improve table formatting performance (#133884)

Co-authored-by: Joe Reuter <johannes.reuter@elastic.co>
This commit is contained in:
Marco Liberati 2022-06-15 12:23:08 +02:00 committed by GitHub
parent bd485d5d23
commit d02d12b859
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -150,11 +150,14 @@ export const getFormattedTable = (
{} {}
); );
const formattedTableInfo = table.rows.reduce<{ const formattedTableInfo: {
rows: Datatable['rows']; rows: Datatable['rows'];
formattedColumns: Record<string, true>; formattedColumns: Record<string, true>;
}>( } = {
({ rows: formattedRows, formattedColumns }, row) => { rows: [],
formattedColumns: {},
};
for (const row of table.rows) {
const formattedRowInfo = getFormattedRow( const formattedRowInfo = getFormattedRow(
row, row,
table.columns, table.columns,
@ -162,16 +165,12 @@ export const getFormattedTable = (
xAccessor ? getAccessorByDimension(xAccessor, table.columns) : undefined, xAccessor ? getAccessorByDimension(xAccessor, table.columns) : undefined,
xScaleType xScaleType
); );
return { formattedTableInfo.rows.push(formattedRowInfo.row);
rows: [...formattedRows, formattedRowInfo.row], formattedTableInfo.formattedColumns = {
formattedColumns: { ...formattedColumns, ...formattedRowInfo.formattedColumns }, ...formattedTableInfo.formattedColumns,
...formattedRowInfo.formattedColumns,
}; };
},
{
rows: [],
formattedColumns: {},
} }
);
return { return {
table: { ...table, rows: formattedTableInfo.rows }, table: { ...table, rows: formattedTableInfo.rows },