Only apply edits when something has changed

This commit is contained in:
Michael Shamoon
2020-12-19 21:42:19 -08:00
parent 9a4190bedf
commit 1da652ba4d
3 changed files with 51 additions and 18 deletions

View File

@@ -37,7 +37,7 @@ export class FilterableDropdownComponent {
@Input()
set items(items: ObjectWithId[]) {
if (items) {
this.selectableItems = items.map(i => {
this._selectableItems = items.map(i => {
return {item: i, state: SelectableItemState.NotSelected}
})
}
@@ -84,15 +84,16 @@ export class FilterableDropdownComponent {
toggle = new EventEmitter()
@Output()
close = new EventEmitter()
open = new EventEmitter()
@Output()
editingComplete = new EventEmitter()
constructor(private filterPipe: FilterPipe) { }
toggleItem(selectableItem: SelectableItem): void {
if (this.singular && selectableItem.state == SelectableItemState.Selected) {
this._selectableItems.forEach(si => {
if (si.state == SelectableItemState.Selected && si.item.id !== selectableItem.item.id) si.state = SelectableItemState.NotSelected
})
this._selectableItems.filter(si => si.item.id !== selectableItem.item.id).forEach(si => si.state = SelectableItemState.NotSelected)
}
this.toggle.emit(selectableItem.item)
}
@@ -101,10 +102,11 @@ export class FilterableDropdownComponent {
if (open) {
setTimeout(() => {
this.listFilterTextInput.nativeElement.focus();
}, 0);
}, 0)
this.open.next()
} else {
this.filterText = ''
this.close.emit(this.itemsSelected)
if (this.type == FilterableDropdownType.Editing) this.editingComplete.emit(this.itemsSelected)
}
}