accept.tsx 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. import React from "react";
  2. import Dropzone from "../../";
  3. export default class Accept extends React.Component {
  4. state = {
  5. accepted: [],
  6. rejected: [],
  7. };
  8. render() {
  9. return (
  10. <section>
  11. <div className="dropzone">
  12. <Dropzone
  13. accept={{
  14. "image/*": [".jpeg", ".png"],
  15. }}
  16. onDrop={(accepted, rejected) => {
  17. this.setState({ accepted, rejected });
  18. }}
  19. >
  20. {({ getRootProps }) => (
  21. <div {...getRootProps()}>
  22. <p>
  23. Try dropping some files here, or click to select files to
  24. upload.
  25. </p>
  26. <p>Only *.jpeg and *.png images will be accepted</p>
  27. </div>
  28. )}
  29. </Dropzone>
  30. </div>
  31. <aside>
  32. <h2>Accepted files</h2>
  33. <ul>
  34. {this.state.accepted.map((f) => (
  35. <li key={f.name}>
  36. {f.name} - {f.size} bytes
  37. </li>
  38. ))}
  39. </ul>
  40. <h2>Rejected files</h2>
  41. <ul>
  42. {this.state.rejected.map((f) => (
  43. <li key={f.name}>
  44. {f.name} - {f.size} bytes
  45. </li>
  46. ))}
  47. </ul>
  48. </aside>
  49. </section>
  50. );
  51. }
  52. }