diff options
| author | GeoSot <[email protected]> | 2021-07-28 17:39:32 +0300 |
|---|---|---|
| committer | GitHub <[email protected]> | 2021-07-28 17:39:32 +0300 |
| commit | 4bfd8a2cbcb10610b4078cefa45756b4a96301a0 (patch) | |
| tree | 2358a92299ff8fa105623932caacddbf8cd83a41 /js/src/modal.js | |
| parent | 047145e8086793e7c39747e70f5d74a8860c2e50 (diff) | |
| download | bootstrap-4bfd8a2cbcb10610b4078cefa45756b4a96301a0.tar.xz bootstrap-4bfd8a2cbcb10610b4078cefa45756b4a96301a0.zip | |
Use a streamlined way to trigger component dismiss (#34170)
* use a streamlined way to trigger component dismiss
* add documentation
Co-authored-by: XhmikosR <[email protected]>
Diffstat (limited to 'js/src/modal.js')
| -rw-r--r-- | js/src/modal.js | 16 |
1 files changed, 3 insertions, 13 deletions
diff --git a/js/src/modal.js b/js/src/modal.js index 53a3ccfd1..bb8d97e48 100644 --- a/js/src/modal.js +++ b/js/src/modal.js @@ -20,6 +20,7 @@ import ScrollBarHelper from './util/scrollbar' import BaseComponent from './base-component' import Backdrop from './util/backdrop' import FocusTrap from './util/focustrap' +import { enableDismissTrigger } from './util/component-functions' /** * ------------------------------------------------------------------------ @@ -62,11 +63,9 @@ const CLASS_NAME_FADE = 'fade' const CLASS_NAME_SHOW = 'show' const CLASS_NAME_STATIC = 'modal-static' -const SELECTOR = '.modal' const SELECTOR_DIALOG = '.modal-dialog' const SELECTOR_MODAL_BODY = '.modal-body' const SELECTOR_DATA_TOGGLE = '[data-bs-toggle="modal"]' -const SELECTOR_DATA_DISMISS = '[data-bs-dismiss="modal"]' /** * ------------------------------------------------------------------------ @@ -143,11 +142,7 @@ class Modal extends BaseComponent { this._showBackdrop(() => this._showElement(relatedTarget)) } - hide(event) { - if (event && ['A', 'AREA'].includes(event.target.tagName)) { - event.preventDefault() - } - + hide() { if (!this._isShown || this._isTransitioning) { return } @@ -421,12 +416,7 @@ EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_TOGGLE, function ( data.toggle(this) }) -EventHandler.on(document, EVENT_CLICK_DATA_API, SELECTOR_DATA_DISMISS, function (event) { - const target = getElementFromSelector(this) || this.closest(SELECTOR) - const modal = Modal.getOrCreateInstance(target) - - modal.hide(event) -}) +enableDismissTrigger(Modal) /** * ------------------------------------------------------------------------ |
