FileList.js 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. const FileItem = require('./FileItem')
  2. const ActionBrowseTagline = require('./ActionBrowseTagline')
  3. // const { dashboardBgIcon } = require('./icons')
  4. const classNames = require('classnames')
  5. const { h } = require('preact')
  6. const poweredByUppy = (props) => {
  7. return <a tabindex="-1" href="https://uppy.io" rel="noreferrer noopener" target="_blank" class="uppy-Dashboard-poweredBy">Powered by <svg aria-hidden="true" class="UppyIcon uppy-Dashboard-poweredByIcon" width="11" height="11" viewBox="0 0 11 11" xmlns="http://www.w3.org/2000/svg">
  8. <path d="M7.365 10.5l-.01-4.045h2.612L5.5.806l-4.467 5.65h2.604l.01 4.044h3.718z" fill-rule="evenodd" />
  9. </svg><span class="uppy-Dashboard-poweredByUppy">Uppy</span></a>
  10. }
  11. module.exports = (props) => {
  12. const noFiles = props.totalFileCount === 0
  13. const dashboardFilesClass = classNames(
  14. 'uppy-Dashboard-files',
  15. { 'uppy-Dashboard-files--noFiles': noFiles }
  16. )
  17. return <ul class={dashboardFilesClass}>
  18. {noFiles &&
  19. <div class="uppy-Dashboard-bgIcon">
  20. <div class="uppy-Dashboard-dropFilesTitle">
  21. <ActionBrowseTagline
  22. acquirers={props.acquirers}
  23. handleInputChange={props.handleInputChange}
  24. i18n={props.i18n}
  25. i18nArray={props.i18nArray}
  26. allowedFileTypes={props.allowedFileTypes}
  27. maxNumberOfFiles={props.maxNumberOfFiles}
  28. />
  29. </div>
  30. { props.note && <div class="uppy-Dashboard-note">{props.note}</div> }
  31. { props.proudlyDisplayPoweredByUppy && poweredByUppy(props) }
  32. </div>
  33. }
  34. {Object.keys(props.files).map((fileID) => (
  35. <FileItem
  36. acquirers={props.acquirers}
  37. file={props.files[fileID]}
  38. toggleFileCard={props.toggleFileCard}
  39. showProgressDetails={props.showProgressDetails}
  40. info={props.info}
  41. log={props.log}
  42. i18n={props.i18n}
  43. removeFile={props.removeFile}
  44. pauseUpload={props.pauseUpload}
  45. cancelUpload={props.cancelUpload}
  46. retryUpload={props.retryUpload}
  47. hidePauseResumeCancelButtons={props.hidePauseResumeCancelButtons}
  48. hideRetryButton={props.hideRetryButton}
  49. resumableUploads={props.resumableUploads}
  50. bundled={props.bundled}
  51. isWide={props.isWide}
  52. showLinkToFileUploadResult={props.showLinkToFileUploadResult}
  53. metaFields={props.metaFields}
  54. />
  55. ))}
  56. </ul>
  57. }