dragManager.js 819 B

123456789101112131415161718192021222324
  1. export default function(state, emitter) {
  2. emitter.on('DOMContentLoaded', () => {
  3. document.body.addEventListener('dragover', event => {
  4. if (state.route === '/') {
  5. event.preventDefault();
  6. }
  7. });
  8. document.body.addEventListener('drop', event => {
  9. if (state.route === '/' && !state.transfer) {
  10. event.preventDefault();
  11. document.querySelector('.upload-window').classList.remove('ondrag');
  12. const target = event.dataTransfer;
  13. if (target.files.length === 0) {
  14. return;
  15. }
  16. if (target.files.length > 1 || target.files[0].size === 0) {
  17. return alert(state.translate('uploadPageMultipleFilesAlert'));
  18. }
  19. const file = target.files[0];
  20. emitter.emit('upload', { file, type: 'drop' });
  21. }
  22. });
  23. });
  24. }