@hotta/react-native-imagepicker 0.1.2 → 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -1
- package/ios/NativeImagePicker.mm +30 -30
- package/lib/module/index.js +8 -2
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/src/NativeImagePicker.d.ts +1 -1
- package/lib/typescript/src/NativeImagePicker.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +3 -1
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/NativeImagePicker.ts +1 -1
- package/src/index.ts +12 -0
- package/src/index.tsx +0 -9
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# 基于react-native0.82版本的图片选择器(TurboModule)
|
|
2
2
|
|
|
3
|
-
This is a fork of [react-native-syan-image-picker](
|
|
3
|
+
This is a fork of [react-native-syan-image-picker](https://github.com/syanbo/react-native-syan-image-picker)
|
|
4
4
|
|
|
5
5
|
### 原生框架依赖
|
|
6
6
|
|
|
@@ -8,6 +8,12 @@ This is a fork of [react-native-syan-image-picker]([GitHub - syanbo/react-nativ
|
|
|
8
8
|
|
|
9
9
|
- iOS:[TZImagePickerController](https://github.com/banchichen/TZImagePickerController) - by [banchichen](https://github.com/banchichen)
|
|
10
10
|
|
|
11
|
+
### 安装
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
yarn add @hotta/react-native-imagepicker@0.1.3
|
|
15
|
+
```
|
|
16
|
+
|
|
11
17
|
### 使用方法
|
|
12
18
|
|
|
13
19
|
```
|
package/ios/NativeImagePicker.mm
CHANGED
|
@@ -7,6 +7,8 @@
|
|
|
7
7
|
@interface NativeImagePicker ()
|
|
8
8
|
|
|
9
9
|
@property (nonatomic, strong) UIImagePickerController *imagePickerVc;
|
|
10
|
+
@property (nonatomic, strong) NSDictionary *pickOptions;
|
|
11
|
+
|
|
10
12
|
/**
|
|
11
13
|
保存Promise的resolve block
|
|
12
14
|
*/
|
|
@@ -25,9 +27,7 @@
|
|
|
25
27
|
@property (nonatomic, strong) NSMutableArray *selectedAssets;
|
|
26
28
|
@end
|
|
27
29
|
@implementation NativeImagePicker
|
|
28
|
-
|
|
29
|
-
std::optional<JS::NativeImagePicker::ImagePickerOption> _cameraOptions;
|
|
30
|
-
}
|
|
30
|
+
|
|
31
31
|
|
|
32
32
|
- (instancetype)init {
|
|
33
33
|
self = [super init];
|
|
@@ -52,8 +52,8 @@
|
|
|
52
52
|
_selectedAssets = nil;
|
|
53
53
|
}
|
|
54
54
|
|
|
55
|
-
- (void)asyncShowImagePicker:(
|
|
56
|
-
|
|
55
|
+
- (void)asyncShowImagePicker:(NSDictionary *)options resolve:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject {
|
|
56
|
+
self.pickOptions = options;
|
|
57
57
|
self.resolveBlock = resolve;
|
|
58
58
|
self.rejectBlock = reject;
|
|
59
59
|
self.callback = nil;
|
|
@@ -62,21 +62,21 @@
|
|
|
62
62
|
|
|
63
63
|
- (void)openImagePicker {
|
|
64
64
|
// 照片最大可选张数
|
|
65
|
-
NSInteger imageCount =
|
|
65
|
+
NSInteger imageCount = [self.pickOptions sy_integerForKey:@"imageCount"];
|
|
66
66
|
// 显示内部拍照按钮
|
|
67
|
-
BOOL isCamera =
|
|
68
|
-
BOOL isCrop =
|
|
69
|
-
BOOL isGif =
|
|
70
|
-
BOOL showCropCircle =
|
|
71
|
-
BOOL isRecordSelected =
|
|
72
|
-
BOOL allowPickingOriginalPhoto =
|
|
73
|
-
BOOL allowPickingMultipleVideo =
|
|
74
|
-
BOOL sortAscendingByModificationDate =
|
|
75
|
-
BOOL showSelectedIndex =
|
|
76
|
-
NSInteger CropW =
|
|
77
|
-
NSInteger CropH =
|
|
78
|
-
NSInteger circleCropRadius =
|
|
79
|
-
NSInteger quality =
|
|
67
|
+
BOOL isCamera = [self.pickOptions sy_boolForKey:@"isCamera"];
|
|
68
|
+
BOOL isCrop = [self.pickOptions sy_boolForKey:@"isCrop"];
|
|
69
|
+
BOOL isGif = [self.pickOptions sy_boolForKey:@"isGif"];
|
|
70
|
+
BOOL showCropCircle = [self.pickOptions sy_boolForKey:@"showCropCircle"];
|
|
71
|
+
BOOL isRecordSelected = [self.pickOptions sy_boolForKey:@"isRecordSelected"];
|
|
72
|
+
BOOL allowPickingOriginalPhoto = [self.pickOptions sy_boolForKey:@"allowPickingOriginalPhoto"];
|
|
73
|
+
BOOL allowPickingMultipleVideo = [self.pickOptions sy_boolForKey:@"allowPickingMultipleVideo"];
|
|
74
|
+
BOOL sortAscendingByModificationDate = [self.pickOptions sy_boolForKey:@"sortAscendingByModificationDate"];
|
|
75
|
+
BOOL showSelectedIndex = [self.pickOptions sy_boolForKey:@"showSelectedIndex"];
|
|
76
|
+
NSInteger CropW = [self.pickOptions sy_integerForKey:@"CropW"];
|
|
77
|
+
NSInteger CropH = [self.pickOptions sy_integerForKey:@"CropH"];
|
|
78
|
+
NSInteger circleCropRadius = [self.pickOptions sy_integerForKey:@"circleCropRadius"];
|
|
79
|
+
NSInteger quality = [self.pickOptions sy_integerForKey:@"quality"];
|
|
80
80
|
|
|
81
81
|
TZImagePickerController *imagePickerVc = [[TZImagePickerController alloc] initWithMaxImagesCount:imageCount delegate:self];
|
|
82
82
|
imagePickerVc.iconThemeColor = [UIColor colorWithRed:255.0/255.0 green:177.0/255.0 blue:82.0/255.0 alpha:1.0];
|
|
@@ -208,12 +208,12 @@
|
|
|
208
208
|
[tzImagePickerVc hideProgressHUD];
|
|
209
209
|
|
|
210
210
|
TZAssetModel *assetModel = [[TZImageManager manager] createModelWithAsset:asset];
|
|
211
|
-
BOOL isCrop = self
|
|
212
|
-
BOOL showCropCircle = self
|
|
213
|
-
NSInteger CropW = self
|
|
214
|
-
NSInteger CropH = self
|
|
215
|
-
NSInteger circleCropRadius = self
|
|
216
|
-
NSInteger
|
|
211
|
+
BOOL isCrop = [self.pickOptions sy_boolForKey:@"isCrop"];
|
|
212
|
+
BOOL showCropCircle = [self.pickOptions sy_boolForKey:@"showCropCircle"];
|
|
213
|
+
NSInteger CropW = [self.pickOptions sy_integerForKey:@"CropW"];
|
|
214
|
+
NSInteger CropH = [self.pickOptions sy_integerForKey:@"CropH"];
|
|
215
|
+
NSInteger circleCropRadius = [self.pickOptions sy_integerForKey:@"circleCropRadius"];
|
|
216
|
+
NSInteger quality = [self.pickOptions sy_integerForKey:@"quality"];
|
|
217
217
|
|
|
218
218
|
if (isCrop) {
|
|
219
219
|
TZImagePickerController *imagePicker = [[TZImagePickerController alloc] initCropTypeWithAsset:assetModel.asset photo:image completion:^(UIImage *cropImage, id asset) {
|
|
@@ -253,7 +253,7 @@
|
|
|
253
253
|
}
|
|
254
254
|
|
|
255
255
|
- (BOOL)isAssetCanSelect:(PHAsset *)asset {
|
|
256
|
-
BOOL allowPickingGif =
|
|
256
|
+
BOOL allowPickingGif = [self.pickOptions sy_boolForKey:@"isGif"];
|
|
257
257
|
BOOL isGIF = [[TZImageManager manager] getAssetType:asset] == TZAssetModelMediaTypePhotoGif;
|
|
258
258
|
if (!allowPickingGif && isGIF) {
|
|
259
259
|
return NO;
|
|
@@ -311,7 +311,7 @@
|
|
|
311
311
|
NSString *fileExtension = [filename pathExtension];
|
|
312
312
|
NSMutableString *filePath = [NSMutableString string];
|
|
313
313
|
BOOL isPNG = [fileExtension hasSuffix:@"PNG"] || [fileExtension hasSuffix:@"png"];
|
|
314
|
-
BOOL compressFocusAlpha =
|
|
314
|
+
BOOL compressFocusAlpha = [self.pickOptions sy_boolForKey:@"compressFocusAlpha"];
|
|
315
315
|
|
|
316
316
|
if (isPNG) {
|
|
317
317
|
[filePath appendString:[NSString stringWithFormat:@"%@SyanImageCaches/%@", NSTemporaryDirectory(), filename]];
|
|
@@ -328,7 +328,7 @@
|
|
|
328
328
|
NSInteger size = [[NSFileManager defaultManager] attributesOfItemAtPath:filePath error:nil].fileSize;
|
|
329
329
|
photo[@"size"] = @(size);
|
|
330
330
|
photo[@"mediaType"] = @(phAsset.mediaType);
|
|
331
|
-
if (
|
|
331
|
+
if ([self.pickOptions sy_boolForKey:@"enableBase64"]) {
|
|
332
332
|
if(isPNG){
|
|
333
333
|
photo[@"base64"] = [NSString stringWithFormat:@"data:image/png;base64,%@", [writeData base64EncodedStringWithOptions:0]];
|
|
334
334
|
}else{
|
|
@@ -350,7 +350,7 @@
|
|
|
350
350
|
NSData *writeData = nil;
|
|
351
351
|
NSMutableString *filePath = [NSMutableString string];
|
|
352
352
|
BOOL isPNG = [fileExtension hasSuffix:@"PNG"] || [fileExtension hasSuffix:@"png"];
|
|
353
|
-
BOOL compressFocusAlpha =
|
|
353
|
+
BOOL compressFocusAlpha = [self.pickOptions sy_boolForKey:@"compressFocusAlpha"];
|
|
354
354
|
|
|
355
355
|
if (isGIF) {
|
|
356
356
|
image = [UIImage sd_tz_animatedGIFWithData:data];
|
|
@@ -374,7 +374,7 @@
|
|
|
374
374
|
NSInteger size = [[NSFileManager defaultManager] attributesOfItemAtPath:filePath error:nil].fileSize;
|
|
375
375
|
photo[@"size"] = @(size);
|
|
376
376
|
photo[@"mediaType"] = @(phAsset.mediaType);
|
|
377
|
-
if (
|
|
377
|
+
if ([self.pickOptions sy_boolForKey:@"enableBase64"] && !isGIF) {
|
|
378
378
|
if(isPNG){
|
|
379
379
|
photo[@"base64"] = [NSString stringWithFormat:@"data:image/png;base64,%@", [writeData base64EncodedStringWithOptions:0]];
|
|
380
380
|
}else{
|
package/lib/module/index.js
CHANGED
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import NativeImagePicker from "./NativeImagePicker.js";
|
|
3
|
+
import NativeImagePicker, { defaultOptions } from "./NativeImagePicker.js";
|
|
4
4
|
const HTNativeImagePicker = (() => {
|
|
5
5
|
return {
|
|
6
|
-
asyncShowImagePicker:
|
|
6
|
+
asyncShowImagePicker: options => {
|
|
7
|
+
const _options = {
|
|
8
|
+
...defaultOptions,
|
|
9
|
+
...options
|
|
10
|
+
};
|
|
11
|
+
return NativeImagePicker.asyncShowImagePicker(_options);
|
|
12
|
+
}
|
|
7
13
|
};
|
|
8
14
|
})();
|
|
9
15
|
export default HTNativeImagePicker;
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NativeImagePicker","HTNativeImagePicker","asyncShowImagePicker"],"sourceRoot":"../../src","sources":["index.
|
|
1
|
+
{"version":3,"names":["NativeImagePicker","defaultOptions","HTNativeImagePicker","asyncShowImagePicker","options","_options"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA,OAAOA,iBAAiB,IAAIC,cAAc,QAAoD,wBAAqB;AAEnH,MAAMC,mBAAmB,GAAG,CAAC,MAAM;EACjC,OAAO;IACLC,oBAAoB,EAAGC,OAA0B,IAAM;MACrD,MAAMC,QAAQ,GAAG;QAAE,GAAGJ,cAAc;QAAE,GAAGG;MAAQ,CAAC;MAClD,OAAOJ,iBAAiB,CAACG,oBAAoB,CAACE,QAAQ,CAAC;IACzD;EACF,CAAC;AACH,CAAC,EAAE,CAAC;AAEJ,eAAeH,mBAAmB","ignoreList":[]}
|
|
@@ -69,7 +69,7 @@ export declare const defaultOptions: {
|
|
|
69
69
|
showSelectedIndex: boolean;
|
|
70
70
|
};
|
|
71
71
|
export interface Spec extends TurboModule {
|
|
72
|
-
asyncShowImagePicker(options:
|
|
72
|
+
asyncShowImagePicker(options: Object): Promise<Array<SelectedPhoto>>;
|
|
73
73
|
}
|
|
74
74
|
declare const _default: Spec;
|
|
75
75
|
export default _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NativeImagePicker.d.ts","sourceRoot":"","sources":["../../../src/NativeImagePicker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAErE,MAAM,MAAM,iBAAiB,GAAG;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;IACf,cAAc,EAAE,OAAO,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,OAAO,CAAC;IACvB,YAAY,EAAE,OAAO,CAAC;IACtB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,aAAa,EAAE,OAAO,CAAC;IACvB,YAAY,EAAE,OAAO,CAAC;IACtB,QAAQ,EAAE,OAAO,CAAC;IAClB,kBAAkB,EAAC,OAAO,CAAC;IAC3B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,OAAO,CAAC;IACtB,yBAAyB,EAAE,OAAO,CAAC;IACnC,yBAAyB,EAAE,OAAO,CAAC;IACnC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,aAAa,EAAE,OAAO,CAAC;IACvB,+BAA+B,EAAE,OAAO,CAAA;IACxC,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,iBAAiB,EAAE,OAAO,CAAC;CAC5B,CAAA;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAC,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAC,MAAM,CAAC;IACZ,MAAM,EAAC,MAAM,CAAA;CACd;AAGH;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;CA0B1B,CAAC;AACF,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC,oBAAoB,CAAC,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"NativeImagePicker.d.ts","sourceRoot":"","sources":["../../../src/NativeImagePicker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAErE,MAAM,MAAM,iBAAiB,GAAG;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;IACf,cAAc,EAAE,OAAO,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,OAAO,CAAC;IACvB,YAAY,EAAE,OAAO,CAAC;IACtB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,aAAa,EAAE,OAAO,CAAC;IACvB,YAAY,EAAE,OAAO,CAAC;IACtB,QAAQ,EAAE,OAAO,CAAC;IAClB,kBAAkB,EAAC,OAAO,CAAC;IAC3B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,OAAO,CAAC;IACtB,yBAAyB,EAAE,OAAO,CAAC;IACnC,yBAAyB,EAAE,OAAO,CAAC;IACnC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,aAAa,EAAE,OAAO,CAAC;IACvB,+BAA+B,EAAE,OAAO,CAAA;IACxC,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,iBAAiB,EAAE,OAAO,CAAC;CAC5B,CAAA;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAC,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAC,MAAM,CAAC;IACZ,MAAM,EAAC,MAAM,CAAA;CACd;AAGH;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;CA0B1B,CAAC;AACF,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC,oBAAoB,CAAC,OAAO,EAAC,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;CACrE;;AAED,wBAA2E"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import { type ImagePickerOption, type SelectedPhoto } from './NativeImagePicker';
|
|
2
|
+
export type { SelectedPhoto, ImagePickerOption };
|
|
1
3
|
declare const HTNativeImagePicker: {
|
|
2
|
-
asyncShowImagePicker: (options:
|
|
4
|
+
asyncShowImagePicker: (options: ImagePickerOption) => Promise<SelectedPhoto[]>;
|
|
3
5
|
};
|
|
4
6
|
export default HTNativeImagePicker;
|
|
5
7
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,OAA0B,EAAkB,KAAK,iBAAiB,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpH,YAAY,EAAE,aAAa,EAAE,iBAAiB,EAAE,CAAC;AACjD,QAAA,MAAM,mBAAmB;oCAEW,iBAAiB;CAKjD,CAAA;AAEJ,eAAe,mBAAmB,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hotta/react-native-imagepicker",
|
|
3
|
-
"version": "0.1.
|
|
4
|
-
"description": "@
|
|
3
|
+
"version": "0.1.4",
|
|
4
|
+
"description": "@hotta/react-native-imagepicker",
|
|
5
5
|
"main": "./lib/module/index.js",
|
|
6
6
|
"types": "./lib/typescript/src/index.d.ts",
|
|
7
7
|
"exports": {
|
package/src/NativeImagePicker.ts
CHANGED
|
@@ -73,7 +73,7 @@ export const defaultOptions = {
|
|
|
73
73
|
showSelectedIndex: false, // 是否显示序号, 默认不显示
|
|
74
74
|
};
|
|
75
75
|
export interface Spec extends TurboModule {
|
|
76
|
-
asyncShowImagePicker(options:
|
|
76
|
+
asyncShowImagePicker(options:Object): Promise<Array<SelectedPhoto>>;
|
|
77
77
|
}
|
|
78
78
|
|
|
79
79
|
export default TurboModuleRegistry.getEnforcing<Spec>('NativeImagePicker');
|
package/src/index.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import NativeImagePicker, { defaultOptions, type ImagePickerOption, type SelectedPhoto } from './NativeImagePicker';
|
|
2
|
+
export type { SelectedPhoto, ImagePickerOption };
|
|
3
|
+
const HTNativeImagePicker = (() => {
|
|
4
|
+
return {
|
|
5
|
+
asyncShowImagePicker: (options: ImagePickerOption ) => {
|
|
6
|
+
const _options = { ...defaultOptions, ...options }
|
|
7
|
+
return NativeImagePicker.asyncShowImagePicker(_options)
|
|
8
|
+
}
|
|
9
|
+
};
|
|
10
|
+
})()
|
|
11
|
+
|
|
12
|
+
export default HTNativeImagePicker
|