|
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- Starting with version 7.0.0, the `{preview}` property generation on the [File](https://developer.mozilla.org/en-US/docs/Web/API/File) objects and the `{disablePreview}` property on the `<Dropzone>` have been removed.
-
- If you need need the `{preview}`, it can be easily achieved in the `onDrop()` callback:
-
- ```jsx harmony
- import React, {useEffect, useState} from 'react';
- import {useDropzone} from 'react-dropzone';
-
- const thumbsContainer = {
- display: 'flex',
- flexDirection: 'row',
- flexWrap: 'wrap',
- marginTop: 16
- };
-
- const thumb = {
- display: 'inline-flex',
- borderRadius: 2,
- border: '1px solid #eaeaea',
- marginBottom: 8,
- marginRight: 8,
- width: 100,
- height: 100,
- padding: 4,
- boxSizing: 'border-box'
- };
-
- const thumbInner = {
- display: 'flex',
- minWidth: 0,
- overflow: 'hidden'
- };
-
- const img = {
- display: 'block',
- width: 'auto',
- height: '100%'
- };
-
-
- function Previews(props) {
- const [files, setFiles] = useState([]);
- const {getRootProps, getInputProps} = useDropzone({
- accept: 'image/*',
- onDrop: acceptedFiles => {
- setFiles(acceptedFiles.map(file => Object.assign(file, {
- preview: URL.createObjectURL(file)
- })));
- }
- });
-
- const thumbs = files.map(file => (
- <div style={thumb} key={file.name}>
- <div style={thumbInner}>
- <img
- src={file.preview}
- style={img}
- />
- </div>
- </div>
- ));
-
- useEffect(() => () => {
- // Make sure to revoke the data uris to avoid memory leaks
- files.forEach(file => URL.revokeObjectURL(file.preview));
- }, [files]);
-
- return (
- <section className="container">
- <div {...getRootProps({className: 'dropzone'})}>
- <input {...getInputProps()} />
- <p>Drag 'n' drop some files here, or click to select files</p>
- </div>
- <aside style={thumbsContainer}>
- {thumbs}
- </aside>
- </section>
- );
- }
-
- <Previews />
- ```
|