Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/twbs/bootstrap.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/js
diff options
context:
space:
mode:
authorGeoSot <geo.sotis@gmail.com>2021-05-11 09:04:42 +0300
committerGitHub <noreply@github.com>2021-05-11 09:04:42 +0300
commit03842b5f259d6007db02c465e6c55929e551e9cd (patch)
treeb5ec0345127f40dd0918ef6828c3057ca57a4c3a /js
parent052def456845c2147e4e6c99d17bba12fcbee34c (diff)
Refactor: move disposing properties into the base class (#33740)
Moves more functionality to `base-component`, transferring the responsibility of disposal to parent class. Each component, dusting disposal, sets its protected properties to `null`. So the same can be done in one place for all children components .
Diffstat (limited to 'js')
-rw-r--r--js/src/base-component.js5
-rw-r--r--js/src/carousel.js12
-rw-r--r--js/src/collapse.js8
-rw-r--r--js/src/dropdown.js3
-rw-r--r--js/src/modal.js9
-rw-r--r--js/src/offcanvas.js3
-rw-r--r--js/src/scrollspy.js10
-rw-r--r--js/src/toast.js1
-rw-r--r--js/src/tooltip.js7
9 files changed, 6 insertions, 52 deletions
diff --git a/js/src/base-component.js b/js/src/base-component.js
index 7d2a5b1e87..588a59d756 100644
--- a/js/src/base-component.js
+++ b/js/src/base-component.js
@@ -36,7 +36,10 @@ class BaseComponent {
dispose() {
Data.remove(this._element, this.constructor.DATA_KEY)
EventHandler.off(this._element, `.${this.constructor.DATA_KEY}`)
- this._element = null
+
+ Object.getOwnPropertyNames(this).forEach(propertyName => {
+ this[propertyName] = null
+ })
}
_queueCallback(callback, element, isAnimated = true) {
diff --git a/js/src/carousel.js b/js/src/carousel.js
index 2f5cd9de95..92733637e9 100644
--- a/js/src/carousel.js
+++ b/js/src/carousel.js
@@ -213,18 +213,6 @@ class Carousel extends BaseComponent {
this._slide(order, this._items[index])
}
- dispose() {
- this._items = null
- this._config = null
- this._interval = null
- this._isPaused = null
- this._isSliding = null
- this._activeElement = null
- this._indicatorsElement = null
-
- super.dispose()
- }
-
// Private
_getConfig(config) {
diff --git a/js/src/collapse.js b/js/src/collapse.js
index bd3846e053..0d1b91be55 100644
--- a/js/src/collapse.js
+++ b/js/src/collapse.js
@@ -253,14 +253,6 @@ class Collapse extends BaseComponent {
this._isTransitioning = isTransitioning
}
- dispose() {
- super.dispose()
- this._config = null
- this._parent = null
- this._triggerArray = null
- this._isTransitioning = null
- }
-
// Private
_getConfig(config) {
diff --git a/js/src/dropdown.js b/js/src/dropdown.js
index bb2d01c274..8bd3f01e70 100644
--- a/js/src/dropdown.js
+++ b/js/src/dropdown.js
@@ -217,11 +217,8 @@ class Dropdown extends BaseComponent {
}
dispose() {
- this._menu = null
-
if (this._popper) {
this._popper.destroy()
- this._popper = null
}
super.dispose()
diff --git a/js/src/modal.js b/js/src/modal.js
index 6701c896f7..44f2a0cbb2 100644
--- a/js/src/modal.js
+++ b/js/src/modal.js
@@ -183,6 +183,7 @@ class Modal extends BaseComponent {
[window, this._dialog]
.forEach(htmlElement => EventHandler.off(htmlElement, EVENT_KEY))
+ this._backdrop.dispose()
super.dispose()
/**
@@ -191,14 +192,6 @@ class Modal extends BaseComponent {
* It will remove `EVENT_CLICK_DATA_API` event that should remain
*/
EventHandler.off(document, EVENT_FOCUSIN)
-
- this._config = null
- this._dialog = null
- this._backdrop.dispose()
- this._backdrop = null
- this._isShown = null
- this._ignoreBackdropClick = null
- this._isTransitioning = null
}
handleUpdate() {
diff --git a/js/src/offcanvas.js b/js/src/offcanvas.js
index 68f8e81422..8ddb776b1f 100644
--- a/js/src/offcanvas.js
+++ b/js/src/offcanvas.js
@@ -162,9 +162,6 @@ class Offcanvas extends BaseComponent {
this._backdrop.dispose()
super.dispose()
EventHandler.off(document, EVENT_FOCUSIN)
-
- this._config = null
- this._backdrop = null
}
// Private
diff --git a/js/src/scrollspy.js b/js/src/scrollspy.js
index 0f59696602..7c59dabcff 100644
--- a/js/src/scrollspy.js
+++ b/js/src/scrollspy.js
@@ -137,16 +137,8 @@ class ScrollSpy extends BaseComponent {
}
dispose() {
- super.dispose()
EventHandler.off(this._scrollElement, EVENT_KEY)
-
- this._scrollElement = null
- this._config = null
- this._selector = null
- this._offsets = null
- this._targets = null
- this._activeTarget = null
- this._scrollHeight = null
+ super.dispose()
}
// Private
diff --git a/js/src/toast.js b/js/src/toast.js
index 94a9084ce5..cf869cd5a3 100644
--- a/js/src/toast.js
+++ b/js/src/toast.js
@@ -144,7 +144,6 @@ class Toast extends BaseComponent {
}
super.dispose()
- this._config = null
}
// Private
diff --git a/js/src/tooltip.js b/js/src/tooltip.js
index 65eb7a11ca..7226d31234 100644
--- a/js/src/tooltip.js
+++ b/js/src/tooltip.js
@@ -219,17 +219,10 @@ class Tooltip extends BaseComponent {
this.tip.parentNode.removeChild(this.tip)
}
- this._isEnabled = null
- this._timeout = null
- this._hoverState = null
- this._activeTrigger = null
if (this._popper) {
this._popper.destroy()
}
- this._popper = null
- this.config = null
- this.tip = null
super.dispose()
}