ItemList.js 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. const Row = require('./Item')
  2. const { h } = require('preact')
  3. module.exports = (props) => {
  4. if (!props.folders.length && !props.files.length) {
  5. return <div class="uppy-Provider-empty">{props.i18n('noFilesFound')}</div>
  6. }
  7. return (
  8. <div class="uppy-ProviderBrowser-body">
  9. <ul class="uppy-ProviderBrowser-list"
  10. onscroll={props.handleScroll}
  11. role="listbox"
  12. aria-label={`List of files from ${props.title}`}>
  13. {props.folders.map(folder => {
  14. let isDisabled = false
  15. let isChecked = props.isChecked(folder)
  16. if (isChecked) {
  17. isDisabled = isChecked.loading
  18. }
  19. return Row({
  20. title: props.getItemName(folder),
  21. id: props.getItemId(folder),
  22. type: 'folder',
  23. // active: props.activeRow(folder),
  24. getItemIcon: () => props.getItemIcon(folder),
  25. isDisabled: isDisabled,
  26. isChecked: isChecked,
  27. handleFolderClick: () => props.handleFolderClick(folder),
  28. handleClick: (e) => props.toggleCheckbox(e, folder),
  29. columns: props.columns,
  30. showTitles: props.showTitles
  31. })
  32. })}
  33. {props.files.map(file => {
  34. return Row({
  35. title: props.getItemName(file),
  36. id: props.getItemId(file),
  37. type: 'file',
  38. // active: props.activeRow(file),
  39. getItemIcon: () => props.getItemIcon(file),
  40. isDisabled: false,
  41. isChecked: props.isChecked(file),
  42. handleClick: (e) => props.toggleCheckbox(e, file),
  43. columns: props.columns,
  44. showTitles: props.showTitles
  45. })
  46. })}
  47. </ul>
  48. </div>
  49. )
  50. }