Skip to content

Commit 57485d5

Browse files
committed
fix(selection): set the correct item selection state
1 parent f395389 commit 57485d5

1 file changed

Lines changed: 8 additions & 1 deletion

File tree

projects/ng-sortgrid/src/lib/ngsg-item.directive.ts

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import {NgsgStoreService} from './store/ngsg-store.service';
2222
import {NgsgEventsService} from './shared/ngsg-events.service';
2323
import {ScrollHelperService} from './helpers/scroll/scroll-helper.service';
2424
import {NgsgOrderChange} from './shared/ngsg-order-change.model';
25+
import {NgsgElementsHelper} from './helpers/element/ngsg-elements.helper';
2526

2627
const selector = '[ngSortgridItem]';
2728

@@ -135,10 +136,16 @@ export class NgsgItemDirective implements OnInit, OnChanges, AfterViewInit, OnDe
135136

136137
@HostListener('click', ['$event'])
137138
clicked(): void {
138-
this.selected = !this.selected;
139+
this.selected = !this.isItemCurrentlySelected();
139140
this.selectionService.updateSelectedDragItem(this.ngSortGridGroup, this.el.nativeElement, this.selected);
140141
}
141142

143+
private isItemCurrentlySelected(): boolean {
144+
const index = NgsgElementsHelper.findIndex(this.el.nativeElement);
145+
return !!this.ngsgStore.getSelectedItems(this.ngSortGridGroup)
146+
.find(element => element.originalIndex === index);
147+
}
148+
142149
private occuredOnHost(event): boolean {
143150
return event.target.matches(selector);
144151
}

0 commit comments

Comments
 (0)