Browser.js 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. const Breadcrumbs = require('./Breadcrumbs')
  2. const Filter = require('./Filter')
  3. const Table = require('./ItemList')
  4. const { h } = require('preact')
  5. module.exports = (props) => {
  6. let filteredFolders = props.folders
  7. let filteredFiles = props.files
  8. if (props.filterInput !== '') {
  9. filteredFolders = props.filterItems(props.folders)
  10. filteredFiles = props.filterItems(props.files)
  11. }
  12. return (
  13. <div class={`uppy-ProviderBrowser uppy-ProviderBrowser-viewType--${props.viewType}`}>
  14. <div class="uppy-ProviderBrowser-header">
  15. <div class={`uppy-ProviderBrowser-headerBar ${!props.showBreadcrumbs ? 'uppy-ProviderBrowser-headerBar--simple' : ''}`}>
  16. <div class="uppy-Provider-breadcrumbsIcon">{props.pluginIcon && props.pluginIcon()}</div>
  17. {props.showBreadcrumbs && Breadcrumbs({
  18. getFolder: props.getFolder,
  19. directories: props.directories,
  20. title: props.title
  21. })}
  22. <span class="uppy-ProviderBrowser-user">{props.username}</span>
  23. <button type="button" onclick={props.logout} class="uppy-ProviderBrowser-userLogout">Log out</button>
  24. </div>
  25. </div>
  26. { props.showFilter && <Filter {...props} /> }
  27. {Table({
  28. columns: [{
  29. name: 'Name',
  30. key: 'title'
  31. }],
  32. folders: filteredFolders,
  33. files: filteredFiles,
  34. activeRow: props.isActiveRow,
  35. sortByTitle: props.sortByTitle,
  36. sortByDate: props.sortByDate,
  37. handleFileClick: props.addFile,
  38. handleFolderClick: props.getNextFolder,
  39. isChecked: props.isChecked,
  40. toggleCheckbox: props.toggleCheckbox,
  41. getItemName: props.getItemName,
  42. getItemIcon: props.getItemIcon,
  43. handleScroll: props.handleScroll,
  44. title: props.title,
  45. showTitles: props.showTitles,
  46. getItemId: props.getItemId,
  47. i18n: props.i18n
  48. })}
  49. <button class="UppyButton--circular UppyButton--blue uppy-ProviderBrowser-doneBtn"
  50. type="button"
  51. aria-label="Done picking files"
  52. title="Done picking files"
  53. onclick={props.done}>
  54. <svg aria-hidden="true" class="UppyIcon" width="13px" height="9px" viewBox="0 0 13 9">
  55. <polygon points="5 7.293 1.354 3.647 0.646 4.354 5 8.707 12.354 1.354 11.646 0.647" />
  56. </svg>
  57. </button>
  58. </div>
  59. )
  60. }
  61. // <div class="uppy-Dashboard-actions">
  62. // <button class="uppy-u-reset uppy-c-btn uppy-c-btn-primary uppy-Dashboard-actionsBtn" type="button">Select</button>
  63. // </div>