A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/bootstrap-vue/bootstrap-vue/commit/156b1d6a3a1ebb6548ea0dbfac346d61a92f6ed9 below:

handle component updates on click listeners (#5690) · bootstrap-vue/bootstrap-vue@156b1d6 · GitHub

File tree Expand file treeCollapse file tree 3 files changed

+35

-8

lines changed

Filter options

Expand file treeCollapse file tree 3 files changed

+35

-8

lines changed Original file line number Diff line number Diff line change

@@ -1,5 +1,5 @@

1 1

import { mount } from '@vue/test-utils'

2 -

import { waitNT } from '../../../tests/utils'

2 +

import { waitNT, waitRAF } from '../../../tests/utils'

3 3

import { BNavbarToggle } from './navbar-toggle'

4 4 5 5

describe('navbar-toggle', () => {

@@ -106,6 +106,10 @@ describe('navbar-toggle', () => {

106 106

target: 'target-7'

107 107

}

108 108

})

109 + 110 +

await waitRAF()

111 +

await waitNT(wrapper.vm)

112 + 109 113

let rootClicked = false

110 114

const onRootClick = () => {

111 115

rootClicked = true

Original file line number Diff line number Diff line change

@@ -9,10 +9,11 @@ import {

9 9

isTag,

10 10

removeAttr,

11 11

removeClass,

12 +

requestAF,

12 13

setAttr

13 14

} from '../../utils/dom'

14 15

import { isBrowser } from '../../utils/env'

15 -

import { eventOn, eventOff } from '../../utils/events'

16 +

import { EVENT_OPTIONS_PASSIVE, eventOn, eventOff } from '../../utils/events'

16 17

import { isString } from '../../utils/inspect'

17 18

import { keys } from '../../utils/object'

18 19

@@ -95,8 +96,8 @@ const getTargets = ({ modifiers, arg, value }, el) => {

95 96

const removeClickListener = el => {

96 97

const handler = el[BV_TOGGLE_CLICK_HANDLER]

97 98

if (handler) {

98 -

eventOff(el, 'click', handler)

99 -

eventOff(el, 'keydown', handler)

99 +

eventOff(el, 'click', handler, EVENT_OPTIONS_PASSIVE)

100 +

eventOff(el, 'keydown', handler, EVENT_OPTIONS_PASSIVE)

100 101

}

101 102

el[BV_TOGGLE_CLICK_HANDLER] = null

102 103

}

@@ -116,9 +117,9 @@ const addClickListener = (el, vnode) => {

116 117

}

117 118

}

118 119

el[BV_TOGGLE_CLICK_HANDLER] = handler

119 -

eventOn(el, 'click', handler)

120 +

eventOn(el, 'click', handler, EVENT_OPTIONS_PASSIVE)

120 121

if (isNonStandardTag(el)) {

121 -

eventOn(el, 'keydown', handler)

122 +

eventOn(el, 'keydown', handler, EVENT_OPTIONS_PASSIVE)

122 123

}

123 124

}

124 125

}

@@ -203,7 +204,11 @@ const handleUpdate = (el, binding, vnode) => {

203 204

}

204 205 205 206

// Add/Update our click listener(s)

206 -

addClickListener(el, vnode)

207 +

// Wrap in a `requestAF()` to allow any previous

208 +

// click handling to occur first

209 +

requestAF(() => {

210 +

addClickListener(el, vnode)

211 +

})

207 212 208 213

// If targets array has changed, update

209 214

if (!looseEqual(targets, el[BV_TOGGLE_TARGETS])) {

Original file line number Diff line number Diff line change

@@ -1,5 +1,5 @@

1 1

import { mount } from '@vue/test-utils'

2 -

import { waitNT } from '../../../tests/utils'

2 +

import { waitNT, waitRAF } from '../../../tests/utils'

3 3

import { VBToggle } from './toggle'

4 4 5 5

// Emitted control event for collapse (emitted to collapse)

@@ -29,6 +29,9 @@ describe('v-b-toggle directive', () => {

29 29 30 30

const wrapper = mount(App)

31 31 32 +

await waitRAF()

33 +

await waitNT(wrapper.vm)

34 + 32 35

expect(wrapper.vm).toBeDefined()

33 36

expect(wrapper.element.tagName).toBe('BUTTON')

34 37

expect(spy).not.toHaveBeenCalled()

@@ -72,6 +75,9 @@ describe('v-b-toggle directive', () => {

72 75 73 76

const wrapper = mount(App)

74 77 78 +

await waitRAF()

79 +

await waitNT(wrapper.vm)

80 + 75 81

expect(wrapper.vm).toBeDefined()

76 82

expect(wrapper.element.tagName).toBe('BUTTON')

77 83

expect(spy).not.toHaveBeenCalled()

@@ -113,6 +119,9 @@ describe('v-b-toggle directive', () => {

113 119 114 120

const wrapper = mount(App)

115 121 122 +

await waitRAF()

123 +

await waitNT(wrapper.vm)

124 + 116 125

expect(wrapper.vm).toBeDefined()

117 126

expect(wrapper.element.tagName).toBe('BUTTON')

118 127

expect(spy).not.toHaveBeenCalled()

@@ -154,6 +163,9 @@ describe('v-b-toggle directive', () => {

154 163 155 164

const wrapper = mount(App)

156 165 166 +

await waitRAF()

167 +

await waitNT(wrapper.vm)

168 + 157 169

expect(wrapper.vm).toBeDefined()

158 170

expect(wrapper.element.tagName).toBe('A')

159 171

expect(spy).not.toHaveBeenCalled()

@@ -207,6 +219,9 @@ describe('v-b-toggle directive', () => {

207 219

}

208 220

})

209 221 222 +

await waitRAF()

223 +

await waitNT(wrapper.vm)

224 + 210 225

expect(wrapper.vm).toBeDefined()

211 226

expect(wrapper.element.tagName).toBe('BUTTON')

212 227

expect(spy).not.toHaveBeenCalled()

@@ -279,6 +294,9 @@ describe('v-b-toggle directive', () => {

279 294 280 295

const wrapper = mount(App)

281 296 297 +

await waitRAF()

298 +

await waitNT(wrapper.vm)

299 + 282 300

expect(wrapper.vm).toBeDefined()

283 301

expect(wrapper.element.tagName).toBe('SPAN')

284 302

expect(spy).not.toHaveBeenCalled()

You can’t perform that action at this time.


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4