trackdropzone.js 999 B

123456789101112131415161718192021222324252627282930
  1. import {useCallback} from "react";
  2. import {store} from "../reducers";
  3. import {actionSetTrackToPlaylist, actionUploadTrack} from "../actions";
  4. import {useDropzone} from "react-dropzone";
  5. import {connect} from "react-redux";
  6. function TrackDropZone({ onLoad }) {
  7. const onDrop = useCallback((acceptedFiles) => {
  8. // Do something with the files
  9. onLoad(acceptedFiles[0]);
  10. store.dispatch(actionSetTrackToPlaylist(acceptedFiles[0]))
  11. }, []);
  12. const { getRootProps, getInputProps, isDragActive } = useDropzone({ onDrop });
  13. return (
  14. <div {...getRootProps()}>
  15. <input {...getInputProps()} />
  16. {isDragActive ? (
  17. <p>Перетащите файл сюда ...</p>
  18. ) : (
  19. <p>Для добавления трэка перетащите файлы в плейлист</p>
  20. )}
  21. </div>
  22. );
  23. }
  24. export const CTrackDropZone = connect (null, {onLoad: actionUploadTrack}) (TrackDropZone)