/* global MAXFILESIZE */ const { bytes } = require('./utils'); export default function(state, emitter) { emitter.on('DOMContentLoaded', () => { document.body.addEventListener('dragover', event => { if (state.route === '/') { event.preventDefault(); } }); document.body.addEventListener('drop', event => { if (state.route === '/' && !state.uploading) { event.preventDefault(); document .querySelector('.uploadArea') .classList.remove('uploadArea--dragging'); const target = event.dataTransfer; if (target.files.length === 0) { return; } if (target.files.length > 1) { // eslint-disable-next-line no-alert return alert(state.translate('uploadPageMultipleFilesAlert')); } const file = target.files[0]; if (file.size === 0) { return; } if (file.size > MAXFILESIZE) { // eslint-disable-next-line no-alert alert(state.translate('fileTooBig', { size: bytes(MAXFILESIZE) })); return; } emitter.emit('upload', { file, type: 'drop' }); } }); }); }