StatusBar.js 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. import html from '../../core/html'
  2. export default (props) => {
  3. props = props || {}
  4. const isHidden = props.totalFileCount === 0 || !props.isUploadStarted
  5. return html`
  6. <div class="UppyDashboard-statusBar
  7. ${props.isAllComplete ? 'is-complete' : ''}"
  8. aria-hidden="${isHidden}">
  9. <div class="UppyDashboard-statusBarProgress" style="width: ${props.totalProgress}%"></div>
  10. <div class="UppyDashboard-statusBarContent">
  11. ${props.isUploadStarted && !props.isAllComplete
  12. ? !props.isAllPaused
  13. ? html`<span>${pauseResumeButtons(props)} Uploading... ${props.complete} / ${props.inProgress}・${props.totalProgress || 0}%・${props.totalETA}・↑ ${props.totalSpeed}/s</span>`
  14. : html`<span>${pauseResumeButtons(props)} Paused・${props.totalProgress}%</span>`
  15. : null
  16. }
  17. ${props.isAllComplete
  18. ? html`<span><svg class="UppyIcon" width="18" height="17" viewBox="0 0 23 17">
  19. <path d="M8.944 17L0 7.865l2.555-2.61 6.39 6.525L20.41 0 23 2.645z" />
  20. </svg>Upload complete・${props.totalProgress}%</span>`
  21. : null
  22. }
  23. </div>
  24. </div>
  25. `
  26. }
  27. // ${!props.autoProceed && props.newFileCount > 0
  28. // ? startUpload(props)
  29. // : null
  30. // }
  31. // const startUpload = (props) => {
  32. // return html`<button type="button" onclick=${props.startUpload}>
  33. // Upload
  34. // <sup class="UppyDashboard-uploadCountf"
  35. // title="${props.i18n('numberOfSelectedFiles')}"
  36. // aria-label="${props.i18n('numberOfSelectedFiles')}">
  37. // ${props.newFileCount}
  38. // </sup>
  39. // </button>`
  40. // }
  41. const pauseResumeButtons = (props) => {
  42. return html`<button class="UppyDashboard-statusBarAction" type="button" onclick=${() => togglePauseResume(props)}>
  43. ${props.isAllPaused
  44. ? html`<svg class="UppyIcon" width="15" height="17" viewBox="0 0 11 13">
  45. <path d="M1.26 12.534a.67.67 0 0 1-.674.012.67.67 0 0 1-.336-.583v-11C.25.724.38.5.586.382a.658.658 0 0 1 .673.012l9.165 5.5a.66.66 0 0 1 .325.57.66.66 0 0 1-.325.573l-9.166 5.5z" />
  46. </svg>`
  47. : html`<svg class="UppyIcon" width="16" height="17" viewBox="0 0 12 13">
  48. <path d="M4.888.81v11.38c0 .446-.324.81-.722.81H2.722C2.324 13 2 12.636 2 12.19V.81c0-.446.324-.81.722-.81h1.444c.398 0 .722.364.722.81zM9.888.81v11.38c0 .446-.324.81-.722.81H7.722C7.324 13 7 12.636 7 12.19V.81c0-.446.324-.81.722-.81h1.444c.398 0 .722.364.722.81z"/>
  49. </svg>`
  50. }
  51. </button>`
  52. }
  53. const togglePauseResume = (props) => {
  54. if (props.isAllComplete) return
  55. if (props.isAllPaused) {
  56. return props.resumeAll()
  57. }
  58. return props.pauseAll()
  59. }