main.js 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. require('es6-promise/auto')
  2. require('whatwg-fetch')
  3. const Uppy = require('@uppy/core')
  4. const Dashboard = require('@uppy/dashboard')
  5. const Tus = require('@uppy/tus')
  6. const canvasToBlob = require('@uppy/utils/lib/canvasToBlob')
  7. const isOnTravis = !!(process.env.TRAVIS && process.env.CI)
  8. const endpoint = isOnTravis ? 'http://companion.test:1081' : 'http://localhost:1081'
  9. let id = 0
  10. window.setup = function (options) {
  11. id += 1
  12. // Initialise Uppy with Drag & Drop
  13. const uppy = new Uppy({ id: `uppy${id}`, debug: true })
  14. uppy.use(Dashboard, { inline: true, target: '#dash' })
  15. uppy.use(Tus, {
  16. endpoint: `${endpoint}/files/`,
  17. limit: options.limit
  18. })
  19. uppy.on('file-added', (file) => {
  20. randomColorImage().then(function (blob) {
  21. uppy.setFileState(file.id, {
  22. // eslint-disable-next-line compat/compat
  23. preview: URL.createObjectURL(blob)
  24. })
  25. })
  26. })
  27. return uppy
  28. }
  29. function randomColorImage () {
  30. const canvas = document.createElement('canvas')
  31. canvas.width = 140
  32. canvas.height = 140
  33. const context = canvas.getContext('2d')
  34. context.fillStyle = '#xxxxxx'.replace(/x/g, () => '0123456789ABCDEF'[Math.floor(Math.random() * 16)])
  35. context.fillRect(0, 0, 140, 140)
  36. return canvasToBlob(canvas)
  37. }