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/e53a05d960a9de0ca9636ee31e0197e7e554ddbc below:

only unbind/rebind if trigger element or modal ID cha… · bootstrap-vue/bootstrap-vue@e53a05d · GitHub

File tree Expand file treeCollapse file tree 1 file changed

+19

-8

lines changed

Filter options

Expand file treeCollapse file tree 1 file changed

+19

-8

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

@@ -16,7 +16,7 @@ import { keys } from '../../utils/object'

16 16

const EVENT_SHOW = 'bv::show::modal'

17 17 18 18

// Prop name we use to store info on root element

19 -

const HANDLER = '__bv_modal_directive__'

19 +

const PROPERTY = '__bv_modal_directive__'

20 20 21 21

const EVENT_OPTS = { passive: true }

22 22

@@ -64,7 +64,7 @@ const bind = (el, binding, vnode) => {

64 64

}

65 65

}

66 66

}

67 -

el[HANDLER] = handler

67 +

el[PROPERTY] = { handler, target, trigger }

68 68

// If element is not a button, we add `role="button"` for accessibility

69 69

setRole(trigger)

70 70

// Listen for click events

@@ -78,19 +78,30 @@ const bind = (el, binding, vnode) => {

78 78

}

79 79 80 80

const unbind = el => {

81 -

const trigger = getTriggerElement(el)

82 -

const handler = el ? el[HANDLER] : null

81 +

const oldProp = el[PROPERTY] || {}

82 +

const trigger = oldProp.trigger

83 +

const handler = oldProp.handler

83 84

if (trigger && handler) {

84 85

eventOff(trigger, 'click', handler, EVENT_OPTS)

85 86

eventOff(trigger, 'keydown', handler, EVENT_OPTS)

87 +

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

88 +

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

86 89

}

87 -

delete el[HANDLER]

90 +

delete el[PROPERTY]

88 91

}

89 92 90 93

const componentUpdated = (el, binding, vnode) => {

91 -

// We bind and rebind just in case target changes

92 -

unbind(el, binding, vnode)

93 -

bind(el, binding, vnode)

94 +

const oldProp = el[PROPERTY] || {}

95 +

const target = getTarget(binding)

96 +

const trigger = getTriggerElement(el)

97 +

if (target !== oldProp.target || trigger !== oldProp.trigger) {

98 +

// We bind and rebind if the target or trigger changes

99 +

unbind(el, binding, vnode)

100 +

bind(el, binding, vnode)

101 +

}

102 +

// If trigger element is not a button, ensure `role="button"`

103 +

// is still set for accessibility

104 +

setRole(trigger)

94 105

}

95 106 96 107

const updated = () => {}

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