diff --git a/frontend/src/api/files.js b/frontend/src/api/files.js index 602090c1..135e9799 100644 --- a/frontend/src/api/files.js +++ b/frontend/src/api/files.js @@ -94,9 +94,6 @@ export async function post (url, content = '', overwrite = false, onupload) { request.upload.onprogress = onupload } - // Send a message to user before closing the tab during file upload - window.onbeforeunload = () => "Files are being uploaded." - request.onload = () => { if (request.status === 200) { resolve(request.responseText) @@ -112,8 +109,7 @@ export async function post (url, content = '', overwrite = false, onupload) { } request.send(content) - // Upload is done no more message before closing the tab - }).finally(() => { window.onbeforeunload = null }) + }) } function moveCopy (items, copy = false) { diff --git a/frontend/src/store/modules/upload.js b/frontend/src/store/modules/upload.js index 738edaf9..6552dd01 100644 --- a/frontend/src/store/modules/upload.js +++ b/frontend/src/store/modules/upload.js @@ -37,6 +37,11 @@ const mutations = { } } +const beforeUnload = (event) => { + event.preventDefault() + event.returnValue = '' +} + const actions = { upload: (context, item) => { let uploadsCount = Object.keys(context.state.uploads).length; @@ -45,6 +50,7 @@ const actions = { let isUploadsEmpty = uploadsCount == 0 if (isQueueEmpty && isUploadsEmpty) { + window.addEventListener('beforeunload', beforeUnload) buttons.loading('upload') } @@ -67,6 +73,7 @@ const actions = { let canProcess = isBellowLimit && !isQueueEmpty if (isFinished) { + window.removeEventListener('beforeunload', beforeUnload) buttons.success('upload') context.commit('reset') context.commit('setReload', true, { root: true })