Repository URL to install this package:
|
Version:
3.12.2 ▾
|
import webkitGetAsEntryApi from './utils/webkitGetAsEntryApi/index';
import fallbackApi from './utils/fallbackApi';
/**
* Returns a promise that resolves to the array of dropped files (if a folder is dropped, and browser supports folder parsing - promise resolves to the flat array of all files in all directories).
* Each file has .relativePath prop appended to it (e.g. "/docs/Prague/ticket_from_prague_to_ufa.pdf") if browser supports it. Otherwise it's undefined.
*
* @param {DataTransfer} dataTransfer
* @param {Function} logDropError - a function that's called every time some folder or some file error out (e.g. because of the folder name being too long on Windows). Notice that resulting promise will always be resolved anyway.
*
* @returns {Promise} - Array<File>
*/
export default function getDroppedFiles(dataTransfer) {
var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
_ref$logDropError = _ref.logDropError,
logDropError = _ref$logDropError === void 0 ? function () {} : _ref$logDropError;
// Get all files from all subdirs. Works (at least) in Chrome, Mozilla, and Safari
if (dataTransfer.items && dataTransfer.items[0] && 'webkitGetAsEntry' in dataTransfer.items[0]) {
return webkitGetAsEntryApi(dataTransfer, logDropError);
// Otherwise just return all first-order files
} else {
return fallbackApi(dataTransfer);
}
}