All files / react-dropzone/src getDataTransferItems.js

100% Statements 12/12
92.31% Branches 12/13
100% Functions 1/1
100% Lines 12/12
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23  39x 39x 37x 37x 34x 3x     3x   2x 1x     39x 37x       39x    
export default function getDataTransferFiles(event, isMultipleAllowed = true) {
  let dataTransferItemsList = [];
  if (event.hasOwnProperty('dataTransfer')) {
    const dt = event.dataTransfer;
    if (dt.hasOwnProperty('files')) {
      dataTransferItemsList = dt.files;
    } else Eif (dt.hasOwnProperty('items')) {
      // During the drag even the dataTransfer.files is null
      // but Chrome implements some drag store, which is accesible via dataTransfer.items
      dataTransferItemsList = dt.items;
    }
  } else if (event.hasOwnProperty('target')) {
    dataTransferItemsList = event.target.files;
  }
 
  if (dataTransferItemsList.length > 0) {
    dataTransferItemsList = isMultipleAllowed ? dataTransferItemsList : [dataTransferItemsList[0]];
  }
 
  // Convert from DataTransferItemsList to the native Array
  return Array.prototype.slice.call(dataTransferItemsList);
}