From 1033e1165b5f87273c569a2c7d727e1e7eb6c789 Mon Sep 17 00:00:00 2001 From: pkupczyk <piotr.kupczyk@id.ethz.ch> Date: Fri, 1 Oct 2021 16:23:23 +0200 Subject: [PATCH] SSDM-11664 : NG UI & ELN : common table widget - fix temporary flickering when changing the order of columns --- .../components/common/grid/GridController.js | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/openbis_ng_ui/src/js/components/common/grid/GridController.js b/openbis_ng_ui/src/js/components/common/grid/GridController.js index 6923f5982c9..69927e4df50 100644 --- a/openbis_ng_ui/src/js/components/common/grid/GridController.js +++ b/openbis_ng_ui/src/js/components/common/grid/GridController.js @@ -86,19 +86,23 @@ export default class GridController { newColumn.visible = newColumnsVisibility[newColumn.name] }) - newColumns = newColumns.sort((c1, c2) => { + this._sortColumns(newColumns, newColumnsSorting) + + return { newColumns, newColumnsVisibility, newColumnsSorting } + } + + _sortColumns(columns, columnsSorting) { + columns.sort((c1, c2) => { const c1Index = _.findIndex( - newColumnsSorting, + columnsSorting, columnName => columnName === c1.name ) const c2Index = _.findIndex( - newColumnsSorting, + columnsSorting, columnName => columnName === c2.name ) return c1Index - c2Index }) - - return { newColumns, newColumnsVisibility, newColumnsSorting } } _initColumn(column) { @@ -462,7 +466,11 @@ export default class GridController { newColumnsSorting.splice(sourceSorting, 1) newColumnsSorting.splice(destinationSorting, 0, sourceColumn.name) + const newColumns = [...state.columns] + this._sortColumns(newColumns, newColumnsSorting) + return { + columns: newColumns, columnsSorting: newColumnsSorting } }) -- GitLab