dragManager.js 808 B

123456789101112131415161718192021222324252627
  1. import { checkSize } from './utils';
  2. export default function(state, emitter) {
  3. emitter.on('DOMContentLoaded', () => {
  4. document.body.addEventListener('dragover', event => {
  5. if (state.route === '/') {
  6. event.preventDefault();
  7. const files = document.querySelector('.uploadedFilesWrapper');
  8. files.classList.add('uploadArea--noEvents');
  9. }
  10. });
  11. document.body.addEventListener('drop', event => {
  12. if (state.route === '/' && !state.uploading) {
  13. event.preventDefault();
  14. document
  15. .querySelector('.uploadArea')
  16. .classList.remove('uploadArea--dragging');
  17. const target = event.dataTransfer;
  18. checkSize(target.files, state.files);
  19. emitter.emit('addFiles', { files: target.files });
  20. }
  21. });
  22. });
  23. }