Skip to content

Commit

Permalink
Fix clearing of data when filter applied (#560)
Browse files Browse the repository at this point in the history
  • Loading branch information
mdebrauw committed May 8, 2023
1 parent f36f904 commit 9be41e8
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 16 deletions.
2 changes: 1 addition & 1 deletion lib/selections/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -492,7 +492,7 @@ export default function (self) {
iterateSelectedCells(
(cell) => {
affectedCells.push(cell);
self.viewData[cell.boundRowIndex][cell.columnName] = '';
self.viewData[cell.viewRowIndex][cell.columnName] = '';
},
bounds,
false,
Expand Down
58 changes: 43 additions & 15 deletions test/editing.js
Original file line number Diff line number Diff line change
Expand Up @@ -784,26 +784,54 @@ export default function () {
grid.cut(fakeClipboardEvent);
});
});
it('Clearing selection fires `afterdelete` event', function (done) {
var grid = g({
test: this.test,
data: [{ 'Column A': 'Original value' }],
describe('clear', () => {
it('selection fires `afterdelete` event', function (done) {
var grid = g({
test: this.test,
data: [{ 'Column A': 'Original value' }],
});

grid.focus();
grid.selectArea({ top: 0, left: 0, bottom: 0, right: 0 });

grid.addEventListener('afterdelete', function (event) {
event.preventDefault();
doAssert(
event.cells[0].length == 4,
'first affected cell is [rowIndex, columnIndex, boundRowIndex, boundColumnIndex] tuple',
);
chai.assert.deepStrictEqual(event.cells[0], [0, 0, 0, 0]);
done();
});

grid.deleteSelectedData();
});

grid.focus();
grid.selectArea({ top: 0, left: 0, bottom: 0, right: 0 });
it('selection on filtered view clears data', function () {
var grid = g({
test: this.test,
data: [
{ 'Column A': 'Original value' },
{ 'Column A': 'Foo bar' },
{ 'Column A': 'Original value' },
],
});

grid.addEventListener('afterdelete', function (event) {
event.preventDefault();
doAssert(
event.cells[0].length == 4,
'first affected cell is [rowIndex, columnIndex, boundRowIndex, boundColumnIndex] tuple',
grid.focus();
grid.setFilter('Column A', 'Original');
grid.selectArea({ top: 0, left: 0, bottom: 1, right: 1 });

grid.deleteSelectedData();
chai.assert.deepStrictEqual(
grid.viewData.map((c) => Object.values(c)).flat(),
['', ''],
);
chai.assert.deepStrictEqual(
grid.data.map((c) => Object.values(c)).flat(),
['', 'Foo bar', ''],
'Bound data has been updated',
);
chai.assert.deepStrictEqual(event.cells[0], [0, 0, 0, 0]);
done();
});

grid.deleteSelectedData();
});
it('Moving handle on desktop fills the overlay region with selection data', function (done) {
const grid = g({
Expand Down

0 comments on commit 9be41e8

Please sign in to comment.