main.js 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  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, { preview: URL.createObjectURL(blob) })
  22. })
  23. })
  24. return uppy
  25. }
  26. function randomColorImage () {
  27. const canvas = document.createElement('canvas')
  28. canvas.width = 140
  29. canvas.height = 140
  30. const context = canvas.getContext('2d')
  31. context.fillStyle = '#xxxxxx'.replace(/x/g, () => '0123456789ABCDEF'[Math.floor(Math.random() * 16)])
  32. context.fillRect(0, 0, 140, 140)
  33. return canvasToBlob(canvas)
  34. }