Skip to content

Commit a9f664f

Browse files
authored
Merge pull request #37 from Hackception/fix/item-not-reflected-in-selected-items
Fix: Missing lexical this
2 parents 875eeb3 + 1369938 commit a9f664f

File tree

2 files changed

+12
-9
lines changed

2 files changed

+12
-9
lines changed

hc-tree-view-behavior.html

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -51,26 +51,22 @@
5151
deselectItems(items = this.selectedItems, preventUpdate) {
5252
let selectedItems = [];
5353

54-
function getNodeId(i) {
55-
return i[this.itemIdName];
56-
}
54+
const getNodeId = (i) => i[this.itemIdName];
5755

5856
// Map to Ids for perf
59-
selectedItems = this.selectedItems.map(getNodeId, this);
60-
passedItems = items.map(getNodeId, this);
57+
selectedItems = this.selectedItems.map(getNodeId);
58+
passedItems = items.map(getNodeId);
6159

6260
// Filter by Ids for perf
6361
selectedItems = selectedItems
6462
.filter(i => passedItems.indexOf(i) === -1);
6563

6664
// Update selectedItems if there was an item removed
6765
if (this.selectedItems.length !== selectedItems.length) {
68-
function getItemById(id) {
69-
return this.selectedItems.find((i) => getNodeId(i) === id);
70-
}
66+
const getItemById = (id) => this.selectedItems.find((i) => getNodeId(i) === id);
7167

7268
// Re-map ids to items if not empty
73-
if (selectedItems.length > 0) selectedItems = selectedItems.map(getItemById, this);
69+
if (selectedItems.length > 0) selectedItems = selectedItems.map(getItemById);
7470

7571
this.set('selectedItems', selectedItems);
7672
if (!preventUpdate) this._updateState(items, 'off');

test/hc-tree-view_test.html

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,13 @@
4444
element.deselectItems([item]);
4545
expect(element.set.calledWithMatch('selectedItems', [])).to.equal(true);
4646
});
47+
it('should remove only passed items in items from selectedItems when no children associated', () => {
48+
const item = {id: 'test'};
49+
const item2 = {id: 'test2'};
50+
element.selectedItems = [item, item2];
51+
element.deselectItems([item]);
52+
expect(element.set.calledWithMatch('selectedItems', [item2])).to.equal(true);
53+
});
4754
it('should call _updateState when !preventUpdate', () => {
4855
const item = {id: 'test'};
4956
element.selectedItems = [item];

0 commit comments

Comments
 (0)