@@ -143,6 +143,19 @@ function loadIncludeFragment(event: Event) {
143
143
loader . setAttribute ( 'src' , src )
144
144
}
145
145
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
+
146
159
type State = { |
147
160
details : ?Element ,
148
161
activeElement : ?Element
@@ -202,6 +215,8 @@ class DetailsDialogElement extends HTMLElement {
202
215
203
216
details . addEventListener ( 'toggle' , toggle )
204
217
state . details = details
218
+
219
+ updateIncludeFragmentEventListeners ( details , this . src , this . preload )
205
220
}
206
221
207
222
disconnectedCallback ( ) {
@@ -235,16 +250,7 @@ class DetailsDialogElement extends HTMLElement {
235
250
const state = initialized . get ( this )
236
251
if ( ! state ) return
237
252
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 )
248
254
}
249
255
}
250
256
0 commit comments