0
0
mirror of https://github.com/twbs/bootstrap.git synced 2025-03-15 15:29:22 +01:00

Tooltip refactoring (#32523)

* tooltip: move common code to a reusable function

* tooltip: return early in `show()`

Co-authored-by: Rohit Sharma <rohit2sharma95@gmail.com>
Co-authored-by: XhmikosR <xhmikosr@gmail.com>
This commit is contained in:
GeoSot 2021-01-27 19:01:24 +02:00 committed by GitHub
parent 3aa3fda730
commit 5d7b51e1d0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -191,13 +191,7 @@ class Tooltip extends BaseComponent {
}
if (event) {
const dataKey = this.constructor.DATA_KEY
let context = Data.getData(event.delegateTarget, dataKey)
if (!context) {
context = new this.constructor(event.delegateTarget, this._getDelegateConfig())
Data.setData(event.delegateTarget, dataKey, context)
}
const context = this._initializeOnDelegatedTarget(event)
context._activeTrigger.click = !context._activeTrigger.click
@ -245,7 +239,10 @@ class Tooltip extends BaseComponent {
throw new Error('Please use show on visible elements')
}
if (this.isWithContent() && this._isEnabled) {
if (!(this.isWithContent() && this._isEnabled)) {
return
}
const showEvent = EventHandler.trigger(this._element, this.constructor.Event.SHOW)
const shadowRoot = findShadowRoot(this._element)
const isInTheDom = shadowRoot === null ?
@ -322,7 +319,6 @@ class Tooltip extends BaseComponent {
complete()
}
}
}
hide() {
if (!this._popper) {
@ -465,6 +461,18 @@ class Tooltip extends BaseComponent {
// Private
_initializeOnDelegatedTarget(event, context) {
const dataKey = this.constructor.DATA_KEY
context = context || Data.getData(event.delegateTarget, dataKey)
if (!context) {
context = new this.constructor(event.delegateTarget, this._getDelegateConfig())
Data.setData(event.delegateTarget, dataKey, context)
}
return context
}
_getPopperConfig(attachment) {
const defaultBsConfig = {
placement: attachment,
@ -582,16 +590,7 @@ class Tooltip extends BaseComponent {
}
_enter(event, context) {
const dataKey = this.constructor.DATA_KEY
context = context || Data.getData(event.delegateTarget, dataKey)
if (!context) {
context = new this.constructor(
event.delegateTarget,
this._getDelegateConfig()
)
Data.setData(event.delegateTarget, dataKey, context)
}
context = this._initializeOnDelegatedTarget(event, context)
if (event) {
context._activeTrigger[
@ -621,16 +620,7 @@ class Tooltip extends BaseComponent {
}
_leave(event, context) {
const dataKey = this.constructor.DATA_KEY
context = context || Data.getData(event.delegateTarget, dataKey)
if (!context) {
context = new this.constructor(
event.delegateTarget,
this._getDelegateConfig()
)
Data.setData(event.delegateTarget, dataKey, context)
}
context = this._initializeOnDelegatedTarget(event, context)
if (event) {
context._activeTrigger[