aboutsummaryrefslogtreecommitdiff
path: root/js/src
diff options
context:
space:
mode:
authorJulien Déramond <[email protected]>2022-05-06 04:26:15 +0200
committerGitHub <[email protected]>2022-05-05 19:26:15 -0700
commit5d9500bdfdd02b3b1d91df2be86b1723f517fc52 (patch)
tree74a29c6a0b05e22bb3efbc5520f19a3faa6ac6aa /js/src
parentcca801683dfbc54dc7ae7a6ef6ce4361b071bc36 (diff)
downloadbootstrap-5d9500bdfdd02b3b1d91df2be86b1723f517fc52.tar.xz
bootstrap-5d9500bdfdd02b3b1d91df2be86b1723f517fc52.zip
Handle disabled focused tabs with tab JavaScript plugin (#36169)
* Handle disabled tabs * Fix after feedback * Update js/src/tab.js Co-authored-by: GeoSot <[email protected]> * Update js/src/tab.js Co-authored-by: GeoSot <[email protected]> * Commit suggestions via GitHub broke the thing * Add some unit tests * Remove temp doc modification * Add tests for left arrow * Add disabled tabs in JavaScript Behavior section * Compact 4 tests to 2 tests * Compact 4 tests to 2 tests * Add 'disabled' attribute for all buttons * Change the disabled pane position only for the vertical version * Change ids for the confusing first example in JavaScript behavior * Use disabled attribute instead of the class for buttons in tabs Co-authored-by: GeoSot <[email protected]>
Diffstat (limited to 'js/src')
-rw-r--r--js/src/tab.js7
1 files changed, 5 insertions, 2 deletions
diff --git a/js/src/tab.js b/js/src/tab.js
index 135e929dd..3fa5e4c9e 100644
--- a/js/src/tab.js
+++ b/js/src/tab.js
@@ -168,8 +168,11 @@ class Tab extends BaseComponent {
event.stopPropagation()// stopPropagation/preventDefault both added to support up/down keys without scrolling the page
event.preventDefault()
const isNext = [ARROW_RIGHT_KEY, ARROW_DOWN_KEY].includes(event.key)
- const nextActiveElement = getNextActiveElement(this._getChildren(), event.target, isNext, true)
- Tab.getOrCreateInstance(nextActiveElement).show()
+ const nextActiveElement = getNextActiveElement(this._getChildren().filter(element => !isDisabled(element)), event.target, isNext, true)
+
+ if (nextActiveElement) {
+ Tab.getOrCreateInstance(nextActiveElement).show()
+ }
}
_getChildren() { // collection of inner elements