File tree Expand file tree Collapse file tree 1 file changed +11
-0
lines changed Expand file tree Collapse file tree 1 file changed +11
-0
lines changed Original file line number Diff line number Diff line change @@ -60,6 +60,13 @@ export default defineComponent({
60
60
),
61
61
);
62
62
63
+ function onUnload(event : BeforeUnloadEvent ) {
64
+ // Firefox respects the event cancellation to prompt the user
65
+ event .preventDefault ();
66
+ // Chrome requires returnValue to be set
67
+ event .returnValue = ' ' ;
68
+ }
69
+
63
70
onMounted (() => {
64
71
if (activeSwap .value ) processSwap ();
65
72
});
@@ -126,6 +133,8 @@ export default defineComponent({
126
133
... activeSwap .value ! ,
127
134
state: SwapState .EXPIRED ,
128
135
});
136
+ } else {
137
+ window .addEventListener (' beforeunload' , onUnload );
129
138
}
130
139
131
140
switch (activeSwap .value ! .state ) {
@@ -156,13 +165,15 @@ export default defineComponent({
156
165
return ;
157
166
}
158
167
case SwapState .COMPLETE :
168
+ window .removeEventListener (' beforeunload' , onUnload );
159
169
setTimeout (() => {
160
170
// Hide notification after a timeout, if not in the SwapModal.
161
171
if (context .root .$route .name === ' swap' ) return ;
162
172
setActiveSwap (null );
163
173
}, 4 * 1000 ); // 4 seconds
164
174
/* eslint-enable no-fallthrough */
165
175
default :
176
+ window .removeEventListener (' beforeunload' , onUnload );
166
177
break ;
167
178
}
168
179
}
You can’t perform that action at this time.
0 commit comments