Pārlūkot izejas kodu

add tus-js-client for testing

Artur Paikin 6 gadi atpakaļ
vecāks
revīzija
ec61a68abd

+ 3 - 15
uppy-react-native/App.js

@@ -11,24 +11,10 @@ import {
 import Uppy from '@uppy/core'
 import XHRUpload from '@uppy/xhr-upload'
 import { ImagePicker, Permissions } from 'expo'
+import testUploadFileWithTus from './tus-test.js'
 // import ImagePicker from 'react-native-image-picker'
 // import Tus from '@uppy/tus'
 
-function urlToBlob (url) {
-  return new Promise((resolve, reject) => {
-      var xhr = new XMLHttpRequest()
-      xhr.onerror = reject
-      xhr.onreadystatechange = () => {
-        if (xhr.readyState === 4) {
-          resolve(xhr.response)
-        }
-      };
-      xhr.open('GET', url)
-      xhr.responseType = 'blob' // convert type
-      xhr.send()
-  })
-}
-
 export default class App extends React.Component {
   constructor () {
     super()
@@ -73,6 +59,8 @@ export default class App extends React.Component {
       name: 'photo.jpg',
     }
 
+    testUploadFileWithTus(photo)
+
     this.uppy.addFile({
       source: 'React Native',
       name: 'photo.jpg',

+ 2 - 1
uppy-react-native/package.json

@@ -25,6 +25,7 @@
     "expo": "^27.0.1",
     "react": "16.3.1",
     "react-native": "~0.55.2",
-    "react-native-image-picker": "^0.26.10"
+    "react-native-image-picker": "^0.26.10",
+    "tus-js-client": "https://github.com/tus/tus-js-client"
   }
 }

+ 29 - 0
uppy-react-native/tus-test.js

@@ -0,0 +1,29 @@
+import tus from 'tus-js-client'
+
+function testUploadFileWithTus (file) {
+  console.log('Attempting a tus upload in React Native...')
+  // Create a new tus upload
+  var upload = new tus.Upload(file, {
+    endpoint: 'https://master.tus.io/files/',
+    retryDelays: [0, 1000, 3000, 5000],
+    metadata: {
+      filename: file.name,
+      filetype: file.type
+    },
+    onError: function (error) {
+      console.log('Failed because: ' + error)
+    },
+    onProgress: function (bytesUploaded, bytesTotal) {
+      var percentage = (bytesUploaded / bytesTotal * 100).toFixed(2)
+      console.log(bytesUploaded, bytesTotal, percentage + '%')
+    },
+    onSuccess: function () {
+      console.log('Download %s from %s', upload.file.name, upload.url)
+    }
+  })
+
+  // Start the upload
+  upload.start()
+}
+
+export default testUploadFileWithTus

+ 36 - 0
uppy-react-native/yarn.lock

@@ -630,6 +630,14 @@
   dependencies:
     lodash.throttle "^4.1.1"
 
+"@uppy/xhr-upload@^0.26.0":
+  version "0.26.0"
+  resolved "https://registry.yarnpkg.com/@uppy/xhr-upload/-/xhr-upload-0.26.0.tgz#dbd852d18a68a54bae962948c77fbd1d279c83f7"
+  dependencies:
+    "@uppy/server-utils" "0.26.0"
+    "@uppy/utils" "0.26.0"
+    cuid "^2.1.1"
+
 abab@^1.0.4:
   version "1.0.4"
   resolved "https://registry.yarnpkg.com/abab/-/abab-1.0.4.tgz#5faad9c2c07f60dd76770f71cf025b62a63cfd4e"
@@ -5476,6 +5484,10 @@ querystring@0.2.0, querystring@^0.2.0:
   version "0.2.0"
   resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620"
 
+querystringify@^2.0.0:
+  version "2.0.0"
+  resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.0.0.tgz#fa3ed6e68eb15159457c89b37bc6472833195755"
+
 randomatic@^3.0.0:
   version "3.0.0"
   resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-3.0.0.tgz#d35490030eb4f7578de292ce6dfb04a91a128923"
@@ -5581,6 +5593,10 @@ react-native-gesture-handler@1.0.0-alpha.41:
     invariant "^2.2.2"
     prop-types "^15.5.10"
 
+react-native-image-picker@^0.26.10:
+  version "0.26.10"
+  resolved "https://registry.yarnpkg.com/react-native-image-picker/-/react-native-image-picker-0.26.10.tgz#0bb9ab928984948c67aee0b9e64216bee007a9fc"
+
 react-native-maps@0.21.0:
   version "0.21.0"
   resolved "https://registry.yarnpkg.com/react-native-maps/-/react-native-maps-0.21.0.tgz#005f58e93d7623ad59667e8002101970ddf235c2"
@@ -5994,6 +6010,10 @@ require-main-filename@^1.0.1:
   version "1.0.1"
   resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1"
 
+requires-port@^1.0.0:
+  version "1.0.0"
+  resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff"
+
 resolve-cwd@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a"
@@ -6774,6 +6794,15 @@ tus-js-client@^1.5.1:
     lodash.throttle "^4.1.1"
     resolve-url "^0.2.1"
 
+"tus-js-client@https://github.com/tus/tus-js-client":
+  version "1.5.1"
+  resolved "https://github.com/tus/tus-js-client#53a6ac3c50cf0106b5ae1d350451a0859e626624"
+  dependencies:
+    buffer-from "^0.1.1"
+    extend "^3.0.0"
+    lodash.throttle "^4.1.1"
+    url-parse "^1.4.3"
+
 tweetnacl@^0.14.3, tweetnacl@~0.14.0:
   version "0.14.5"
   resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64"
@@ -6879,6 +6908,13 @@ url-parse-lax@^1.0.0:
   dependencies:
     prepend-http "^1.0.1"
 
+url-parse@^1.4.3:
+  version "1.4.3"
+  resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.3.tgz#bfaee455c889023219d757e045fa6a684ec36c15"
+  dependencies:
+    querystringify "^2.0.0"
+    requires-port "^1.0.0"
+
 url@^0.11.0:
   version "0.11.0"
   resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1"