Skip to content

Commit 637fa21

Browse files
committed
refactor(Autocomplete): improve events handling
1 parent accdf02 commit 637fa21

File tree

1 file changed

+18
-4
lines changed

1 file changed

+18
-4
lines changed

js/src/autocomplete.js

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -247,6 +247,10 @@ class Autocomplete extends BaseComponent {
247247
this.search('')
248248
this._filterOptionsList()
249249
this._inputElement.value = ''
250+
251+
EventHandler.trigger(this._element, EVENT_CHANGED, {
252+
value: this._selected
253+
})
250254
}
251255

252256
search(label) {
@@ -272,6 +276,10 @@ class Autocomplete extends BaseComponent {
272276
}
273277

274278
deselectAll(options = this._selected) {
279+
if (this._selected.length === 0) {
280+
return
281+
}
282+
275283
for (const option of options) {
276284
if (option.disabled) {
277285
continue
@@ -438,14 +446,20 @@ class Autocomplete extends BaseComponent {
438446
EventHandler.on(this._inputElement, EVENT_KEYUP, event => {
439447
if (event.key.length === 1 || event.key === BACKSPACE_KEY || event.key === DELETE_KEY) {
440448
const { value } = event.target
441-
this.deselectAll()
442449
this.search(value)
443450
if (this._config.showHints) {
444451
const options = value ?
445452
this._flattenOptions().filter(option => option.label.toLowerCase().startsWith(value.toLowerCase())) :
446453
[]
447454
this._inputHintElement.value = options.length > 0 ? `${value}${options[0].label.slice(value.length)}` : ''
448455
}
456+
457+
if (this._selected.length > 0) {
458+
this.deselectAll()
459+
EventHandler.trigger(this._element, EVENT_CHANGED, {
460+
value: this._selected
461+
})
462+
}
449463
}
450464
})
451465

@@ -816,9 +830,9 @@ class Autocomplete extends BaseComponent {
816830
option.setAttribute('aria-selected', false)
817831
}
818832

819-
EventHandler.trigger(this._element, EVENT_CHANGED, {
820-
value: this._selected
821-
})
833+
// EventHandler.trigger(this._element, EVENT_CHANGED, {
834+
// value: this._selected
835+
// })
822836
}
823837

824838
_updateCleaner() {

0 commit comments

Comments
 (0)