0
0
mirror of https://github.com/twbs/bootstrap.git synced 2024-12-01 13:24:25 +01:00

Carousel: move repeated code to a method

This commit is contained in:
GeoSot 2021-09-10 02:17:28 +03:00 committed by XhmikosR
parent b8ee68cfa0
commit 0d4213bde3
2 changed files with 15 additions and 13 deletions

View File

@ -148,8 +148,7 @@ class Carousel extends BaseComponent {
this.cycle(true) this.cycle(true)
} }
clearInterval(this._interval) this._clearInterval()
this._interval = null
} }
cycle(event) { cycle(event) {
@ -157,11 +156,7 @@ class Carousel extends BaseComponent {
this._isPaused = false this._isPaused = false
} }
if (this._interval) { this._clearInterval()
clearInterval(this._interval)
this._interval = null
}
if (this._config.interval && !this._isPaused) { if (this._config.interval && !this._isPaused) {
this._updateInterval() this._updateInterval()
@ -412,6 +407,13 @@ class Carousel extends BaseComponent {
return SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element) return SelectorEngine.findOne(SELECTOR_ACTIVE_ITEM, this._element)
} }
_clearInterval() {
if (this._interval) {
clearInterval(this._interval)
this._interval = null
}
}
_directionToOrder(direction) { _directionToOrder(direction) {
if (![DIRECTION_RIGHT, DIRECTION_LEFT].includes(direction)) { if (![DIRECTION_RIGHT, DIRECTION_LEFT].includes(direction)) {
return direction return direction

View File

@ -851,12 +851,12 @@ describe('Carousel', () => {
const carousel = new Carousel(carouselEl) const carousel = new Carousel(carouselEl)
spyOn(carousel, 'cycle') spyOn(carousel, 'cycle')
spyOn(window, 'clearInterval') spyOn(carousel, '_clearInterval')
carousel.pause() carousel.pause()
expect(carousel.cycle).toHaveBeenCalledWith(true) expect(carousel.cycle).toHaveBeenCalledWith(true)
expect(window.clearInterval).toHaveBeenCalled() expect(carousel._clearInterval).toHaveBeenCalled()
expect(carousel._isPaused).toBeTrue() expect(carousel._isPaused).toBeTrue()
}) })
@ -877,12 +877,12 @@ describe('Carousel', () => {
const carousel = new Carousel(carouselEl) const carousel = new Carousel(carouselEl)
spyOn(carousel, 'cycle') spyOn(carousel, 'cycle')
spyOn(window, 'clearInterval') spyOn(carousel, '_clearInterval')
carousel.pause() carousel.pause()
expect(carousel.cycle).not.toHaveBeenCalled() expect(carousel.cycle).not.toHaveBeenCalled()
expect(window.clearInterval).toHaveBeenCalled() expect(carousel._clearInterval).toHaveBeenCalled()
expect(carousel._isPaused).toBeTrue() expect(carousel._isPaused).toBeTrue()
}) })
@ -903,11 +903,11 @@ describe('Carousel', () => {
const carousel = new Carousel(carouselEl) const carousel = new Carousel(carouselEl)
const event = createEvent('mouseenter') const event = createEvent('mouseenter')
spyOn(window, 'clearInterval') spyOn(carousel, '_clearInterval')
carousel.pause(event) carousel.pause(event)
expect(window.clearInterval).toHaveBeenCalled() expect(carousel._clearInterval).toHaveBeenCalled()
expect(carousel._isPaused).toBeFalse() expect(carousel._isPaused).toBeFalse()
}) })
}) })