Browser.js 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. const classNames = require('classnames')
  2. const Breadcrumbs = require('./Breadcrumbs')
  3. const Filter = require('./Filter')
  4. const Table = require('./ItemList')
  5. const FooterActions = require('./FooterActions')
  6. const { h } = require('preact')
  7. const Browser = (props) => {
  8. let filteredFolders = props.folders
  9. let filteredFiles = props.files
  10. if (props.filterInput !== '') {
  11. filteredFolders = props.filterItems(props.folders)
  12. filteredFiles = props.filterItems(props.files)
  13. }
  14. const selected = props.currentSelection.length
  15. return (
  16. <div class={classNames('uppy-ProviderBrowser', `uppy-ProviderBrowser-viewType--${props.viewType}`)}>
  17. <div class="uppy-ProviderBrowser-header">
  18. <div class={classNames('uppy-ProviderBrowser-headerBar', !props.showBreadcrumbs && 'uppy-ProviderBrowser-headerBar--simple')}>
  19. <div class="uppy-Provider-breadcrumbsWrap">
  20. <div class="uppy-Provider-breadcrumbsIcon">{props.pluginIcon && props.pluginIcon()}</div>
  21. {props.showBreadcrumbs && Breadcrumbs({
  22. getFolder: props.getFolder,
  23. directories: props.directories,
  24. title: props.title
  25. })}
  26. </div>
  27. <span class="uppy-ProviderBrowser-user">{props.username}</span>
  28. <button type="button" onclick={props.logout} class="uppy-ProviderBrowser-userLogout">
  29. {props.i18n('logOut')}
  30. </button>
  31. </div>
  32. </div>
  33. { props.showFilter && <Filter {...props} /> }
  34. <Table
  35. columns={[{
  36. name: 'Name',
  37. key: 'title'
  38. }]}
  39. folders={filteredFolders}
  40. files={filteredFiles}
  41. activeRow={props.isActiveRow}
  42. sortByTitle={props.sortByTitle}
  43. sortByDate={props.sortByDate}
  44. isChecked={props.isChecked}
  45. handleFolderClick={props.getNextFolder}
  46. toggleCheckbox={props.toggleCheckbox}
  47. getItemName={props.getItemName}
  48. getItemIcon={props.getItemIcon}
  49. handleScroll={props.handleScroll}
  50. title={props.title}
  51. showTitles={props.showTitles}
  52. getItemId={props.getItemId}
  53. i18n={props.i18n}
  54. />
  55. {selected > 0 && <FooterActions selected={selected} {...props} />}
  56. </div>
  57. )
  58. }
  59. module.exports = Browser