File tree Expand file tree Collapse file tree 1 file changed +17
-0
lines changed Expand file tree Collapse file tree 1 file changed +17
-0
lines changed Original file line number Diff line number Diff line change @@ -22,6 +22,13 @@ const DEFAULT_URL = "https://example.com/";
22
22
23
23
type Hint = "first-load" | "page-load" | "error" | "over-page-min" | "finished" ;
24
24
25
+ const beforeUnloadHandler = ( event : Event ) => {
26
+ event . preventDefault ( ) ;
27
+
28
+ // Included for legacy support, e.g. Chrome/Edge < 119
29
+ event . returnValue = true ;
30
+ } ;
31
+
25
32
@customElement ( "archive-now" )
26
33
class ArchiveNow extends LitElement {
27
34
@state ( )
@@ -281,6 +288,7 @@ class ArchiveNow extends LitElement {
281
288
if ( ! win ) {
282
289
return ;
283
290
}
291
+ this . setWarnOnPageClose ( true ) ;
284
292
285
293
const resp = await win . fetch ( `./w/api/c/${ this . collId } ?all=1` ) ;
286
294
try {
@@ -291,6 +299,14 @@ class ArchiveNow extends LitElement {
291
299
}
292
300
}
293
301
302
+ setWarnOnPageClose ( on : boolean ) {
303
+ if ( on ) {
304
+ window . addEventListener ( "beforeunload" , beforeUnloadHandler ) ;
305
+ } else {
306
+ window . removeEventListener ( "beforeunload" , beforeUnloadHandler ) ;
307
+ }
308
+ }
309
+
294
310
render ( ) {
295
311
return html `
296
312
< header class ="flex items-center justify-between [grid-area:header] ">
@@ -355,6 +371,7 @@ class ArchiveNow extends LitElement {
355
371
target ="_blank "
356
372
size ="large "
357
373
variant ="primary "
374
+ @click =${ ( ) => this . setWarnOnPageClose ( false ) }
358
375
>
359
376
< sl-icon slot ="prefix " name ="download "> </ sl-icon >
360
377
Download Archive (.wacz)
You can’t perform that action at this time.
0 commit comments