Tabs.js 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. import html from '../../core/html'
  2. import { localIcon } from './icons'
  3. export default (props) => {
  4. const {
  5. acquirers,
  6. container,
  7. i18n,
  8. localInputChange,
  9. panelSelectorPrefix,
  10. showPanel
  11. } = props
  12. return html`
  13. <div class="UppyDashboardTabs">
  14. <h3 class="UppyDashboardTabs-title">
  15. ${i18n('dropPasteImport')}
  16. </h3>
  17. <nav>
  18. <ul class="UppyDashboardTabs-list" role="tablist">
  19. <li class="UppyDashboardTab">
  20. <button
  21. class="UppyDashboardTab-btn UppyDashboard-focus"
  22. role="tab"
  23. tabindex="0"
  24. onclick=${(ev) => {
  25. const input = document.querySelector(`${container} .UppyDashboard-input`)
  26. input.click()
  27. }}>
  28. ${localIcon()}
  29. <h5 class="UppyDashboardTab-name">
  30. ${i18n('localDisk')}
  31. </h5>
  32. </button>
  33. <input
  34. class="UppyDashboard-input"
  35. type="file"
  36. name="files[]"
  37. multiple="true"
  38. onchange=${localInputChange}/>
  39. </li>
  40. ${acquirers.map((target) => {
  41. return html`
  42. <li class="UppyDashboardTab">
  43. <button
  44. class="UppyDashboardTab-btn"
  45. role="tab"
  46. tabindex="0"
  47. aria-controls="${panelSelectorPrefix}--${target.id}"
  48. aria-selected="${target.isHidden ? 'false' : 'true'}"
  49. onclick=${() => showPanel(target.id)}>
  50. ${target.icon}
  51. <h5 class="UppyDashboardTab-name">
  52. ${target.name}
  53. </h5>
  54. </button>
  55. </li>
  56. `
  57. })}
  58. </ul>
  59. </nav>
  60. </div>
  61. `
  62. }