diff --git a/web/fup/fupstatic/js/base.js b/web/fup/fupstatic/js/base.js index a665b41b2f..7bbeeb2994 100644 --- a/web/fup/fupstatic/js/base.js +++ b/web/fup/fupstatic/js/base.js @@ -118,4 +118,32 @@ if (document.body.classList.contains('upload-page')) { uploadFile(file, expiryEl.value); } }); + + document.body.addEventListener('dragenter', (e) => { + e.preventDefault(); + e.stopPropagation(); + document.body.classList.add('dragging-over'); + }, false); + document.body.addEventListener('dragover', (e) => { + e.preventDefault(); + e.stopPropagation(); + document.body.classList.add('dragging-over'); + }, false); + document.body.addEventListener('dragleave', (e) => { + e.preventDefault(); + e.stopPropagation(); + document.body.classList.remove('dragging-over'); + }, false); + document.body.addEventListener('drop', (e) => { + e.preventDefault(); + e.stopPropagation(); + document.body.classList.remove('dragging-over'); + + const dt = e.dataTransfer; + const files = dt.files; + + for (const f of files) { + uploadFile(f, expiryEl.value); + } + }, false); }