@@ -13,6 +13,7 @@ struct ContentView: View {
1313 @ObservedObject var backgroundUploader : MyUploader
1414 @State private var showingImagePicker = false
1515 @State var uploadUsingBackgroundConfig = false
16+ @State var useConcurrentUploads = false
1617
1718 var currentUploader : MyUploader {
1819 uploadUsingBackgroundConfig ? backgroundUploader : uploader
@@ -26,21 +27,26 @@ struct ContentView: View {
2627
2728 Button ( " Select image(s) " ) {
2829 showingImagePicker. toggle ( )
29- } . sheet ( isPresented: $showingImagePicker, content: {
30- PhotoPicker { [ weak uploader , weak backgroundUploader ] urls in
30+ } . sheet ( isPresented: $showingImagePicker, content: {
31+ PhotoPicker { urls in
3132 print ( urls)
32- if uploadUsingBackgroundConfig {
33- assert ( backgroundUploader? . transloadit. isUsingBackgroundConfiguration. transloadit == true )
34- assert ( backgroundUploader? . transloadit. isUsingBackgroundConfiguration. tus == true )
35- backgroundUploader? . upload ( urls)
33+ if useConcurrentUploads {
34+ urls. forEach { url in
35+ DispatchQueue . global ( ) . async {
36+ upload ( [ url] )
37+ }
38+ }
3639 } else {
37- assert ( uploader? . transloadit. isUsingBackgroundConfiguration. transloadit == false )
38- assert ( uploader? . transloadit. isUsingBackgroundConfiguration. tus == false )
39- uploader? . upload ( urls)
40+ upload ( urls)
4041 }
4142 }
4243 } )
4344
45+ Toggle ( isOn: $useConcurrentUploads, label: {
46+ Text ( " Upload multiple files concurrently " )
47+ } )
48+ . padding ( . vertical, 8 )
49+
4450 Toggle ( isOn: $uploadUsingBackgroundConfig, label: {
4551 Text ( " Upload using background session " )
4652 } )
@@ -52,6 +58,18 @@ struct ContentView: View {
5258 } else if currentUploader. uploadCompleted {
5359 Text ( " File uploaded 🟢 " )
5460 }
61+ } . padding ( )
62+ }
63+
64+ func upload( _ urls: [ URL ] ) {
65+ if uploadUsingBackgroundConfig {
66+ assert ( backgroundUploader. transloadit. isUsingBackgroundConfiguration. transloadit == true )
67+ assert ( backgroundUploader. transloadit. isUsingBackgroundConfiguration. tus == true )
68+ backgroundUploader. upload ( urls)
69+ } else {
70+ assert ( uploader. transloadit. isUsingBackgroundConfiguration. transloadit == false )
71+ assert ( uploader. transloadit. isUsingBackgroundConfiguration. tus == false )
72+ uploader. upload ( urls)
5573 }
5674 }
5775}
0 commit comments