dropZone.js 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. import { useDropzone } from 'react-dropzone';
  2. import { actionSetAvatar } from '../requests/actions';
  3. import { connect } from 'react-redux';
  4. import { useState, useCallback, useEffect } from 'react';
  5. // const actionUploadFile = file => actionPromise('uploadFile', uploadFile(file));
  6. // const CBasic = connect(null, {onLoad:actionUploadFile})(Basic );
  7. // const actionAvatar = (imageId) =>
  8. // async (dispatch, getState) => {
  9. // await dispatch (actionPromise('setAvatar', gql(`mutation setAvatar ( $imageId:ID, $user_id:String) {
  10. // UserUpsert(user:{_id: $user_id, avatar: {_id: $imageId}}){
  11. // _id, avatar{
  12. // _id
  13. // }
  14. // }}`, {imageId, user_id: getState().auth.payload?.sub?.id})))
  15. // }
  16. // const actionAboutMe = (_id) =>
  17. // actionPromise('aboutMe', gql(`query {
  18. // userFindOne(user: {_id})}`))
  19. // const actionSetAvatar = file =>
  20. // async (dispatch) => {
  21. // let result=await dispatch(actionUploadFile(file));
  22. // if (result) {
  23. // await dispatch(actionAvatar(result._id));
  24. // // dispatch(actionAboutMe(store.state.auth.payload));
  25. // }
  26. // }
  27. function Basic({onLoad}) {
  28. const {acceptedFiles, getRootProps, getInputProps} = useDropzone();
  29. const files = acceptedFiles.map(file => (
  30. <li key={file.path}>
  31. {file.path} - {file.size} bytes
  32. </li>
  33. ));
  34. useEffect(() => {acceptedFiles[0] && onLoad(acceptedFiles[0]) }, [acceptedFiles]);
  35. return (
  36. <section className="container">
  37. <div {...getRootProps({className: 'dropzone'})}>
  38. <input {...getInputProps()} />
  39. <p>Drag 'n' drop some files here, or click to select files</p>
  40. </div>
  41. <aside>
  42. <h4>Files</h4>
  43. <ul>{files}</ul>
  44. </aside>
  45. </section>
  46. );
  47. };
  48. // const CBasic = connect(null, { onLoad: actionSetAvatar })(Basic);
  49. // export {CBasic};