Skip to content

Commit

Permalink
Remove element event listeners through base component (#33429)
Browse files Browse the repository at this point in the history
After some research, I found out that EventHandler saves all the custom events per element using namespace, and is capable of removing handlers using only the element and its namespace (`DATA_KEY`).

So, probably is better to utilize the base-component to do the same job.
  • Loading branch information
GeoSot committed Apr 11, 2021
1 parent bac0b0c commit 5664512
Show file tree
Hide file tree
Showing 6 changed files with 3 additions and 7 deletions.
2 changes: 2 additions & 0 deletions js/src/base-component.js
Expand Up @@ -6,6 +6,7 @@
*/

import Data from './dom/data'
import EventHandler from './dom/event-handler'

/**
* ------------------------------------------------------------------------
Expand All @@ -29,6 +30,7 @@ class BaseComponent {

dispose() {
Data.remove(this._element, this.constructor.DATA_KEY)
EventHandler.off(this._element, `.${this.constructor.DATA_KEY}`)
this._element = null
}

Expand Down
2 changes: 0 additions & 2 deletions js/src/carousel.js
Expand Up @@ -216,8 +216,6 @@ class Carousel extends BaseComponent {
}

dispose() {
EventHandler.off(this._element, EVENT_KEY)

this._items = null
this._config = null
this._interval = null
Expand Down
1 change: 0 additions & 1 deletion js/src/dropdown.js
Expand Up @@ -237,7 +237,6 @@ class Dropdown extends BaseComponent {
}

dispose() {
EventHandler.off(this._element, EVENT_KEY)
this._menu = null

if (this._popper) {
Expand Down
2 changes: 1 addition & 1 deletion js/src/modal.js
Expand Up @@ -187,7 +187,7 @@ class Modal extends BaseComponent {
}

dispose() {
[window, this._element, this._dialog]
[window, this._dialog]
.forEach(htmlElement => EventHandler.off(htmlElement, EVENT_KEY))

super.dispose()
Expand Down
2 changes: 0 additions & 2 deletions js/src/toast.js
Expand Up @@ -156,8 +156,6 @@ class Toast extends BaseComponent {
this._element.classList.remove(CLASS_NAME_SHOW)
}

EventHandler.off(this._element, EVENT_CLICK_DISMISS)

super.dispose()
this._config = null
}
Expand Down
1 change: 0 additions & 1 deletion js/src/tooltip.js
Expand Up @@ -215,7 +215,6 @@ class Tooltip extends BaseComponent {
dispose() {
clearTimeout(this._timeout)

EventHandler.off(this._element, this.constructor.EVENT_KEY)
EventHandler.off(this._element.closest(`.${CLASS_NAME_MODAL}`), 'hide.bs.modal', this._hideModalHandler)

if (this.tip && this.tip.parentNode) {
Expand Down

0 comments on commit 5664512

Please sign in to comment.