@@ -3,15 +3,22 @@ import Photos
33import TLPhotoPicker
44import UIKit
55
6+ var _isCrop = true
7+ var _isPreview = true
8+
69extension TLPhotosPickerConfigure {
710 var isPreview : Bool {
8- get { return true }
9- set { }
11+ get { return _isPreview }
12+ set {
13+ _isPreview = newValue
14+ }
1015 }
1116
1217 var isCrop : Bool {
13- get { return true }
14- set { }
18+ get { return _isCrop }
19+ set {
20+ _isCrop = newValue
21+ }
1522 }
1623}
1724
@@ -40,6 +47,11 @@ class MultipleImagePicker: NSObject, TLPhotosPickerViewControllerDelegate, UINav
4047 func openPicker( options: NSDictionary , resolve: @escaping RCTPromiseResolveBlock , reject: @escaping RCTPromiseRejectBlock ) {
4148 self . setConfiguration ( options: options, resolve: resolve, reject: reject)
4249 let viewController = CustomPhotoPickerViewController ( )
50+
51+ viewController. dismissPhotoPicker = { [ weak self] withPHAssets in
52+ self ? . dismissPhotoPicker ( withTLPHAssets: withPHAssets)
53+ }
54+
4355 viewController. delegate = self
4456
4557 viewController. didExceedMaximumNumberOfSelection = { [ weak self] picker in
@@ -99,6 +111,8 @@ class MultipleImagePicker: NSObject, TLPhotosPickerViewControllerDelegate, UINav
99111
100112 config. isPreview = self . options [ " isPreview " ] as? Bool ?? false
101113
114+ config. isCrop = ( config. singleSelectedMode && self . options [ " isCrop " ] as! Bool )
115+
102116 let mediaType = self . options [ " mediaType " ] as! String
103117
104118 config. mediaType = mediaType == " video " ? PHAssetMediaType . video : mediaType == " image " ? PHAssetMediaType . image : nil
@@ -167,7 +181,7 @@ class MultipleImagePicker: NSObject, TLPhotosPickerViewControllerDelegate, UINav
167181 } , completionBlock: { filePath, fileType in
168182
169183 let object = MediaResponse ( filePath: filePath. absoluteString, mime: fileType, withTLAsset: TLAsset, isExportThumbnail: self . options [ " isExportThumbnail " ] as! Bool )
170-
184+
171185 DispatchQueue . main. async {
172186 completion ( object)
173187 }
@@ -187,17 +201,18 @@ class MultipleImagePicker: NSObject, TLPhotosPickerViewControllerDelegate, UINav
187201 let selectedAssetsCount = self . selectedAssets. count
188202
189203 // check logic code for isCrop
190- let cropCondition = ( options [ " singleSelectedMode " ] as! Bool ) && ( self . options [ " isCrop " ] as! Bool ) && withTLPHAssets. first? . type == . photo
204+
205+ let isCrop = config. isCrop && withTLPHAssets. first? . type == . photo
191206
192207 // check difference
193- if withTLPHAssetsCount == selectedAssetsCount && withTLPHAssets [ withTLPHAssetsCount - 1 ] . phAsset? . localIdentifier == self . selectedAssets [ selectedAssetsCount - 1 ] . phAsset? . localIdentifier && !cropCondition {
208+ if withTLPHAssetsCount == selectedAssetsCount && withTLPHAssets [ withTLPHAssetsCount - 1 ] . phAsset? . localIdentifier == self . selectedAssets [ selectedAssetsCount - 1 ] . phAsset? . localIdentifier && !isCrop {
194209 self . dismissComplete ( )
195210 return
196211 }
197212
198213 self . selectedAssets = withTLPHAssets
199214
200- if cropCondition {
215+ if isCrop {
201216 let uiImage = withTLPHAssets. first? . fullResolutionImage
202217 if uiImage != nil {
203218 self . presentCropViewController ( image: ( withTLPHAssets. first? . fullResolutionImage) !)
0 commit comments