Skip to content
This repository was archived by the owner on Sep 22, 2022. It is now read-only.

Commit f41bce9

Browse files
committed
Make sure that the include fragment event listeners are added/removed when connecting and when the attributes change.
1 parent 8c3b0a8 commit f41bce9

File tree

1 file changed

+16
-10
lines changed

1 file changed

+16
-10
lines changed

index.js

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,19 @@ function loadIncludeFragment(event: Event) {
143143
loader.setAttribute('src', src)
144144
}
145145

146+
function updateIncludeFragmentEventListeners(details: Element, src: ?string, preload: boolean) {
147+
details.removeEventListener('toggle', loadIncludeFragment)
148+
details.removeEventListener('mouseover', loadIncludeFragment)
149+
150+
if (src) {
151+
details.addEventListener('toggle', loadIncludeFragment, {once: true})
152+
}
153+
154+
if (src && preload) {
155+
details.addEventListener('mouseover', loadIncludeFragment, {once: true})
156+
}
157+
}
158+
146159
type State = {|
147160
details: ?Element,
148161
activeElement: ?Element
@@ -202,6 +215,8 @@ class DetailsDialogElement extends HTMLElement {
202215

203216
details.addEventListener('toggle', toggle)
204217
state.details = details
218+
219+
updateIncludeFragmentEventListeners(details, this.src, this.preload)
205220
}
206221

207222
disconnectedCallback() {
@@ -235,16 +250,7 @@ class DetailsDialogElement extends HTMLElement {
235250
const state = initialized.get(this)
236251
if (!state) return
237252

238-
details.removeEventListener('toggle', loadIncludeFragment)
239-
details.removeEventListener('mouseover', loadIncludeFragment)
240-
241-
if (this.src) {
242-
details.addEventListener('toggle', loadIncludeFragment, {once: true})
243-
}
244-
245-
if (this.src && this.preload) {
246-
details.addEventListener('mouseover', loadIncludeFragment, {once: true})
247-
}
253+
updateIncludeFragmentEventListeners(details, this.src, this.preload)
248254
}
249255
}
250256

0 commit comments

Comments
 (0)