Skip to content

Commit

Permalink
Refactor: move disposing properties into the base class (#33740)
Browse files Browse the repository at this point in the history
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 .
  • Loading branch information
GeoSot authored May 11, 2021
1 parent 052def4 commit 03842b5
Show file tree
Hide file tree
Showing 9 changed files with 6 additions and 52 deletions.
5 changes: 4 additions & 1 deletion js/src/base-component.js
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand Down
12 changes: 0 additions & 12 deletions js/src/carousel.js
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand Down
8 changes: 0 additions & 8 deletions js/src/collapse.js
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand Down
3 changes: 0 additions & 3 deletions js/src/dropdown.js
Original file line number Diff line number Diff line change
Expand Up @@ -217,11 +217,8 @@ class Dropdown extends BaseComponent {
}

dispose() {
this._menu = null

if (this._popper) {
this._popper.destroy()
this._popper = null
}

super.dispose()
Expand Down
9 changes: 1 addition & 8 deletions js/src/modal.js
Original file line number Diff line number Diff line change
Expand Up @@ -183,6 +183,7 @@ class Modal extends BaseComponent {
[window, this._dialog]
.forEach(htmlElement => EventHandler.off(htmlElement, EVENT_KEY))

this._backdrop.dispose()
super.dispose()

/**
Expand All @@ -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() {
Expand Down
3 changes: 0 additions & 3 deletions js/src/offcanvas.js
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
10 changes: 1 addition & 9 deletions js/src/scrollspy.js
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
1 change: 0 additions & 1 deletion js/src/toast.js
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,6 @@ class Toast extends BaseComponent {
}

super.dispose()
this._config = null
}

// Private
Expand Down
7 changes: 0 additions & 7 deletions js/src/tooltip.js
Original file line number Diff line number Diff line change
Expand Up @@ -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()
}

Expand Down

0 comments on commit 03842b5

Please sign in to comment.