Skip to content

Commit 8d3f1a9

Browse files
committed
refactor(MultiSelect): improve disabled state handling
1 parent 7cab121 commit 8d3f1a9

File tree

1 file changed

+15
-11
lines changed

1 file changed

+15
-11
lines changed

js/src/multi-select.js

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -489,7 +489,7 @@ class MultiSelect extends BaseComponent {
489489
const buttons = document.createElement('div')
490490
buttons.classList.add('form-multi-select-buttons')
491491

492-
if (this._config.cleaner && this._config.multiple) {
492+
if (!this._config.disabled && this._config.cleaner && this._config.multiple) {
493493
const cleaner = document.createElement('button')
494494
cleaner.type = 'button'
495495
cleaner.classList.add(CLASS_NAME_CLEANER)
@@ -503,6 +503,10 @@ class MultiSelect extends BaseComponent {
503503
indicator.type = 'button'
504504
indicator.classList.add('form-multi-select-indicator')
505505

506+
if (this._config.disabled) {
507+
indicator.tabIndex = -1
508+
}
509+
506510
buttons.append(indicator)
507511

508512
this._indicatorElement = indicator
@@ -619,22 +623,22 @@ class MultiSelect extends BaseComponent {
619623
tag.dataset.value = value
620624
tag.innerHTML = text
621625

622-
const closeBtn = document.createElement('button')
623-
closeBtn.type = 'button'
624-
closeBtn.classList.add(CLASS_NAME_TAG_DELETE)
625-
closeBtn.setAttribute('aria-label', 'Close')
626+
if (!this._config.disabled) {
627+
const closeBtn = document.createElement('button')
628+
closeBtn.type = 'button'
629+
closeBtn.classList.add(CLASS_NAME_TAG_DELETE)
630+
closeBtn.setAttribute('aria-label', 'Close')
626631

627-
tag.append(closeBtn)
628-
629-
EventHandler.on(closeBtn, EVENT_CLICK, event => {
630-
if (!this._config.disabled) {
632+
EventHandler.on(closeBtn, EVENT_CLICK, event => {
631633
event.preventDefault()
632634
event.stopPropagation()
633635

634636
tag.remove()
635637
this._deselectOption(value)
636-
}
637-
})
638+
})
639+
640+
tag.append(closeBtn)
641+
}
638642

639643
return tag
640644
}

0 commit comments

Comments
 (0)