revert row changes, delete - for all selected rows

This commit is contained in:
Jan Prochazka
2020-03-29 13:16:58 +02:00
parent 50bf392e4a
commit 54d3f8383a
4 changed files with 33 additions and 13 deletions

View File

@@ -339,16 +339,36 @@ export default function DataGridCore(props) {
}
}
function revertRowChanges() {
if (loadedRows && currentCell && loadedRows[currentCell[0]]) {
setChangeSet(revertChangeSetRowChanges(changeSet, display.getChangeSetRow(loadedRows[currentCell[0]])));
function getSelectedRowDefinitions() {
const res = [];
if (!loadedAndInsertedRows) return res;
const rowIndexes = _.uniq((selectedCells || []).map(x => x[0]));
for (const index of rowIndexes) {
if (loadedAndInsertedRows[index] && _.isNumber(index)) {
const insertedRowIndex =
firstVisibleRowScrollIndex + index >= loadedRows.length
? firstVisibleRowScrollIndex + index - loadedRows.length
: null;
res.push(display.getChangeSetRow(loadedAndInsertedRows[index], insertedRowIndex));
}
}
return res;
}
function revertRowChanges() {
const updatedChangeSet = getSelectedRowDefinitions().reduce(
(chs, row) => revertChangeSetRowChanges(chs, row),
changeSet
);
setChangeSet(updatedChangeSet);
}
function deleteCurrentRow() {
if (loadedRows && currentCell && loadedRows[currentCell[0]]) {
setChangeSet(deleteChangeSetRows(changeSet, display.getChangeSetRow(loadedRows[currentCell[0]])));
}
const updatedChangeSet = getSelectedRowDefinitions().reduce(
(chs, row) => deleteChangeSetRows(chs, row),
changeSet
);
setChangeSet(updatedChangeSet);
}
function handleGridWheel(event) {

View File

@@ -109,7 +109,7 @@ export default function DataGridRow({
insertedRowIndex,
}) {
// console.log('RENDER ROW', rowIndex);
const rowDefinition = display.getChangeSetRow(row);
const rowDefinition = display.getChangeSetRow(row, insertedRowIndex);
const [matchedField, matchedChangeSetItem] = findExistingChangeSetItem(changeSet, rowDefinition);
const rowUpdated = matchedChangeSetItem ? { ...row, ...matchedChangeSetItem.fields } : row;
const hintFieldsAllowed = visibleRealColumns