@tarojs/taro-rn 4.0.0-beta.7 → 4.0.0-beta.8

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.
@@ -1,43 +1,5 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
1
  import { chooseMedia, MEDIA_TYPE } from '../media';
11
- import { showActionSheet } from '../showActionSheet';
12
2
  export function chooseImage(opts) {
13
- const { sourceType = ['album', 'camera'], } = opts;
14
- if ((sourceType === null || sourceType === void 0 ? void 0 : sourceType.includes('camera')) && (sourceType === null || sourceType === void 0 ? void 0 : sourceType.includes('album'))) {
15
- return showImagePicker(opts);
16
- }
17
- else if (sourceType === null || sourceType === void 0 ? void 0 : sourceType.includes('camera')) {
18
- return chooseMedia(Object.assign(Object.assign({}, opts), { sourceType: ['camera'] }), MEDIA_TYPE.IMAGES);
19
- }
20
- return chooseMedia(Object.assign(Object.assign({}, opts), { sourceType: ['album'] }), MEDIA_TYPE.IMAGES);
21
- }
22
- function showImagePicker(options) {
23
- return __awaiter(this, void 0, void 0, function* () {
24
- const { fail, complete } = options;
25
- try {
26
- const res = yield showActionSheet({
27
- itemList: ['拍照', '从手机相册选择'],
28
- });
29
- if (res.tapIndex === 0) {
30
- return chooseMedia(Object.assign(Object.assign({}, options), { sourceType: ['camera'] }), MEDIA_TYPE.IMAGES);
31
- }
32
- if (res.tapIndex === 1) {
33
- return chooseMedia(Object.assign(Object.assign({}, options), { sourceType: ['album'] }), MEDIA_TYPE.IMAGES);
34
- }
35
- }
36
- catch (err) {
37
- const res = { errMsg: 'chooseImage: fail' };
38
- fail === null || fail === void 0 ? void 0 : fail(res);
39
- complete === null || complete === void 0 ? void 0 : complete(res);
40
- }
41
- });
3
+ return chooseMedia(opts, MEDIA_TYPE.Images);
42
4
  }
43
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/chooseImage/index.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAEpD,MAAM,UAAU,WAAW,CAAC,IAA6B;IACvD,MAAM,EACJ,UAAU,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,GACjC,GAAG,IAAI,CAAA;IACR,IAAG,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,QAAQ,CAAC,QAAQ,CAAC,MAAI,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,QAAQ,CAAC,OAAO,CAAC,CAAA,EAAE;QAClE,OAAO,eAAe,CAAC,IAAI,CAAC,CAAA;KAC7B;SAAM,IAAI,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE;QACzC,OAAO,WAAW,iCAAK,IAAI,KAAE,UAAU,EAAE,CAAC,QAAQ,CAAC,KAAG,UAAU,CAAC,MAAM,CAAC,CAAA;KACzE;IACD,OAAO,WAAW,iCAAK,IAAI,KAAE,UAAU,EAAE,CAAC,OAAO,CAAC,KAAG,UAAU,CAAC,MAAM,CAAC,CAAA;AACzE,CAAC;AAED,SAAe,eAAe,CAAC,OAAgC;;QAC7D,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAA;QAClC,IAAI;YACF,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC;gBAChC,QAAQ,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC;aAC5B,CAAC,CAAA;YACF,IAAI,GAAG,CAAC,QAAQ,KAAK,CAAC,EAAE;gBACtB,OAAO,WAAW,iCAAK,OAAO,KAAE,UAAU,EAAE,CAAC,QAAQ,CAAC,KAAG,UAAU,CAAC,MAAM,CAAC,CAAA;aAC5E;YACD,IAAI,GAAG,CAAC,QAAQ,KAAK,CAAC,EAAE;gBACtB,OAAO,WAAW,iCAAK,OAAO,KAAE,UAAU,EAAE,CAAC,OAAO,CAAC,KAAG,UAAU,CAAC,MAAM,CAAC,CAAA;aAC3E;SACF;QAAC,OAAO,GAAG,EAAE;YACZ,MAAM,GAAG,GAAG,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAA;YAC3C,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAG,GAAG,CAAC,CAAA;YACX,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,GAAG,CAAC,CAAA;SAChB;IACH,CAAC;CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/chooseImage/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAElD,MAAM,UAAU,WAAW,CAAC,IAA6B;IACvD,OAAO,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,CAAA;AAC7C,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { chooseMedia as _chooseMedia, MEDIA_TYPE } from '../media';
2
+ export function chooseMedia(opts) {
3
+ var _a;
4
+ if (((_a = opts.mediaType) === null || _a === void 0 ? void 0 : _a.length) === 1) {
5
+ if (opts.mediaType[0] === 'video') {
6
+ return _chooseMedia(opts, MEDIA_TYPE.Videos);
7
+ }
8
+ else if (opts.mediaType[0] === 'image') {
9
+ return _chooseMedia(opts, MEDIA_TYPE.Images);
10
+ }
11
+ else {
12
+ return _chooseMedia(opts, MEDIA_TYPE.All);
13
+ }
14
+ }
15
+ else {
16
+ return _chooseMedia(opts, MEDIA_TYPE.All);
17
+ }
18
+ }
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/chooseMedia/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,IAAI,YAAY,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAElE,MAAM,UAAU,WAAW,CAAE,IAA6B;;IACxD,IAAI,CAAA,MAAA,IAAI,CAAC,SAAS,0CAAE,MAAM,MAAK,CAAC,EAAE;QAChC,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE;YACjC,OAAO,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,CAAA;SAC7C;aAAM,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE;YACxC,OAAO,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,CAAA;SAC7C;aAAM;YACL,OAAO,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,CAAA;SAC1C;KACF;SAAM;QACL,OAAO,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,CAAA;KAC1C;AACH,CAAC"}
@@ -1,44 +1,5 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
1
  import { chooseMedia, MEDIA_TYPE } from '../media';
11
- import { showActionSheet } from '../showActionSheet';
12
2
  export function chooseVideo(opts) {
13
- const { sourceType = ['album', 'camera'], compressed } = opts;
14
- opts = Object.assign(opts, { sizeType: compressed ? ['compressed'] : [] });
15
- if ((sourceType === null || sourceType === void 0 ? void 0 : sourceType.includes('camera')) && (sourceType === null || sourceType === void 0 ? void 0 : sourceType.includes('album'))) {
16
- return showVideoPicker(opts);
17
- }
18
- else if (sourceType === null || sourceType === void 0 ? void 0 : sourceType.includes('camera')) {
19
- return chooseMedia(Object.assign(Object.assign({}, opts), { sourceType: ['camera'] }), MEDIA_TYPE.VIDEOS);
20
- }
21
- return chooseMedia(Object.assign(Object.assign({}, opts), { sourceType: ['album'] }), MEDIA_TYPE.VIDEOS);
22
- }
23
- function showVideoPicker(options) {
24
- return __awaiter(this, void 0, void 0, function* () {
25
- const { fail, complete } = options;
26
- try {
27
- const res = yield showActionSheet({
28
- itemList: ['拍摄', '从手机相册选择'],
29
- });
30
- if (res.tapIndex === 0) {
31
- return chooseMedia(Object.assign(Object.assign({}, options), { sourceType: ['camera'] }), MEDIA_TYPE.VIDEOS);
32
- }
33
- if (res.tapIndex === 1) {
34
- return chooseMedia(Object.assign(Object.assign({}, options), { sourceType: ['album'] }), MEDIA_TYPE.VIDEOS);
35
- }
36
- }
37
- catch (err) {
38
- const res = { errMsg: 'chooseVideo: fail' };
39
- fail === null || fail === void 0 ? void 0 : fail(res);
40
- complete === null || complete === void 0 ? void 0 : complete(res);
41
- }
42
- });
3
+ return chooseMedia(opts, MEDIA_TYPE.Videos);
43
4
  }
44
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/chooseVideo/index.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAEpD,MAAM,UAAU,WAAW,CAAC,IAA6B;IACvD,MAAM,EACJ,UAAU,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,EAChC,UAAU,EACX,GAAG,IAAI,CAAA;IACR,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IAC1E,IAAG,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,QAAQ,CAAC,QAAQ,CAAC,MAAI,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,QAAQ,CAAC,OAAO,CAAC,CAAA,EAAE;QAClE,OAAO,eAAe,CAAC,IAAI,CAAC,CAAA;KAC7B;SAAM,IAAI,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE;QACzC,OAAO,WAAW,iCAAK,IAAI,KAAE,UAAU,EAAE,CAAC,QAAQ,CAAC,KAAG,UAAU,CAAC,MAAM,CAAC,CAAA;KACzE;IACD,OAAO,WAAW,iCAAK,IAAI,KAAE,UAAU,EAAE,CAAC,OAAO,CAAC,KAAG,UAAU,CAAC,MAAM,CAAC,CAAA;AACzE,CAAC;AAED,SAAe,eAAe,CAAC,OAAgC;;QAC7D,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAA;QAClC,IAAI;YACF,MAAM,GAAG,GAAG,MAAM,eAAe,CAAC;gBAChC,QAAQ,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC;aAC5B,CAAC,CAAA;YACF,IAAI,GAAG,CAAC,QAAQ,KAAK,CAAC,EAAE;gBACtB,OAAO,WAAW,iCAAK,OAAO,KAAE,UAAU,EAAE,CAAC,QAAQ,CAAC,KAAG,UAAU,CAAC,MAAM,CAAC,CAAA;aAC5E;YACD,IAAI,GAAG,CAAC,QAAQ,KAAK,CAAC,EAAE;gBACtB,OAAO,WAAW,iCAAK,OAAO,KAAE,UAAU,EAAE,CAAC,OAAO,CAAC,KAAG,UAAU,CAAC,MAAM,CAAC,CAAA;aAC3E;SACF;QAAC,OAAO,GAAG,EAAE;YACZ,MAAM,GAAG,GAAG,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAA;YAC3C,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAG,GAAG,CAAC,CAAA;YACX,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,GAAG,CAAC,CAAA;SAChB;IACH,CAAC;CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/chooseVideo/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAElD,MAAM,UAAU,WAAW,CAAC,IAA6B;IACvD,OAAO,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,CAAA;AAC7C,CAAC"}
package/dist/lib/index.js CHANGED
@@ -5,6 +5,7 @@ export * from './authorize';
5
5
  export * from './base64ToArrayBuffer';
6
6
  export * from './canIUse';
7
7
  export * from './chooseImage';
8
+ export * from './chooseMedia';
8
9
  export * from './chooseVideo';
9
10
  export * from './clearStorage';
10
11
  export * from './clearStorageSync';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,cAAc,YAAY,CAAA;AAC1B,cAAc,uBAAuB,CAAA;AACrC,cAAc,aAAa,CAAA;AAC3B,cAAc,uBAAuB,CAAA;AACrC,cAAc,WAAW,CAAA;AACzB,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,uBAAuB,CAAA;AACrC,cAAc,2BAA2B,CAAA;AACzC,cAAc,uBAAuB,CAAA;AACrC,cAAc,sBAAsB,CAAA;AACpC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,UAAU,CAAA;AACxB,cAAc,eAAe,CAAA;AAC7B,cAAc,wBAAwB,CAAA;AACtC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,kBAAkB,CAAA;AAChC,cAAc,sBAAsB,CAAA;AACpC,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA;AACrC,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,kBAAkB,CAAA;AAChC,cAAc,sBAAsB,CAAA;AACpC,cAAc,kBAAkB,CAAA;AAChC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,qBAAqB,CAAA;AACnC,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,0BAA0B,CAAA;AACxC,cAAc,yBAAyB,CAAA;AACvC,cAAc,sBAAsB,CAAA;AACpC,cAAc,2BAA2B,CAAA;AACzC,cAAc,qBAAqB,CAAA;AACnC,cAAc,0BAA0B,CAAA;AACxC,cAAc,wBAAwB,CAAA;AACtC,cAAc,mBAAmB,CAAA;AACjC,cAAc,yBAAyB,CAAA;AACvC,cAAc,wBAAwB,CAAA;AACtC,cAAc,qBAAqB,CAAA;AACnC,cAAc,0BAA0B,CAAA;AACxC,cAAc,oBAAoB,CAAA;AAClC,cAAc,yBAAyB,CAAA;AACvC,cAAc,uBAAuB,CAAA;AACrC,cAAc,kBAAkB,CAAA;AAChC,cAAc,eAAe,CAAA;AAC7B,cAAc,WAAW,CAAA;AACzB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,qBAAqB,CAAA;AACnC,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA;AACxC,cAAc,YAAY,CAAA;AAC1B,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AACjC,cAAc,uBAAuB,CAAA;AACrC,cAAc,cAAc,CAAA;AAC5B,cAAc,kBAAkB,CAAA;AAChC,cAAc,mBAAmB,CAAA;AACjC,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,sBAAsB,CAAA;AACpC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,kBAAkB,CAAA;AAChC,cAAc,uBAAuB,CAAA;AACrC,cAAc,qBAAqB,CAAA;AACnC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,iBAAiB,CAAA;AAC/B,cAAc,sBAAsB,CAAA;AACpC,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lib/index.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,cAAc,YAAY,CAAA;AAC1B,cAAc,uBAAuB,CAAA;AACrC,cAAc,aAAa,CAAA;AAC3B,cAAc,uBAAuB,CAAA;AACrC,cAAc,WAAW,CAAA;AACzB,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,uBAAuB,CAAA;AACrC,cAAc,2BAA2B,CAAA;AACzC,cAAc,uBAAuB,CAAA;AACrC,cAAc,sBAAsB,CAAA;AACpC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,UAAU,CAAA;AACxB,cAAc,eAAe,CAAA;AAC7B,cAAc,wBAAwB,CAAA;AACtC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,kBAAkB,CAAA;AAChC,cAAc,sBAAsB,CAAA;AACpC,cAAc,oBAAoB,CAAA;AAClC,cAAc,oBAAoB,CAAA;AAClC,cAAc,uBAAuB,CAAA;AACrC,cAAc,cAAc,CAAA;AAC5B,cAAc,cAAc,CAAA;AAC5B,cAAc,kBAAkB,CAAA;AAChC,cAAc,sBAAsB,CAAA;AACpC,cAAc,kBAAkB,CAAA;AAChC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,qBAAqB,CAAA;AACnC,cAAc,kBAAkB,CAAA;AAChC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,0BAA0B,CAAA;AACxC,cAAc,yBAAyB,CAAA;AACvC,cAAc,sBAAsB,CAAA;AACpC,cAAc,2BAA2B,CAAA;AACzC,cAAc,qBAAqB,CAAA;AACnC,cAAc,0BAA0B,CAAA;AACxC,cAAc,wBAAwB,CAAA;AACtC,cAAc,mBAAmB,CAAA;AACjC,cAAc,yBAAyB,CAAA;AACvC,cAAc,wBAAwB,CAAA;AACtC,cAAc,qBAAqB,CAAA;AACnC,cAAc,0BAA0B,CAAA;AACxC,cAAc,oBAAoB,CAAA;AAClC,cAAc,yBAAyB,CAAA;AACvC,cAAc,uBAAuB,CAAA;AACrC,cAAc,kBAAkB,CAAA;AAChC,cAAc,eAAe,CAAA;AAC7B,cAAc,WAAW,CAAA;AACzB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,qBAAqB,CAAA;AACnC,cAAc,WAAW,CAAA;AACzB,cAAc,YAAY,CAAA;AAC1B,cAAc,0BAA0B,CAAA;AACxC,cAAc,0BAA0B,CAAA;AACxC,cAAc,YAAY,CAAA;AAC1B,cAAc,oBAAoB,CAAA;AAClC,cAAc,mBAAmB,CAAA;AACjC,cAAc,uBAAuB,CAAA;AACrC,cAAc,cAAc,CAAA;AAC5B,cAAc,kBAAkB,CAAA;AAChC,cAAc,mBAAmB,CAAA;AACjC,cAAc,eAAe,CAAA;AAC7B,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,sBAAsB,CAAA;AACpC,cAAc,8BAA8B,CAAA;AAC5C,cAAc,kBAAkB,CAAA;AAChC,cAAc,uBAAuB,CAAA;AACrC,cAAc,qBAAqB,CAAA;AACnC,cAAc,6BAA6B,CAAA;AAC3C,cAAc,iBAAiB,CAAA;AAC/B,cAAc,sBAAsB,CAAA;AACpC,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA;AAC7B,cAAc,gBAAgB,CAAA"}
package/dist/lib/media.js CHANGED
@@ -9,16 +9,14 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  };
10
10
  import { CameraRoll } from "@react-native-camera-roll/camera-roll";
11
11
  import { requestCameraPermissionsAsync } from 'expo-camera';
12
- import * as ImagePicker from 'expo-image-picker';
12
+ import { requestMediaLibraryPermissionsAsync, launchImageLibraryAsync, launchCameraAsync, MediaTypeOptions, } from 'expo-image-picker';
13
13
  import { successHandler, errorHandler } from '../utils';
14
- export const MEDIA_TYPE = {
15
- VIDEOS: 'Videos',
16
- IMAGES: 'Images'
17
- };
14
+ import { showActionSheet } from "./showActionSheet";
15
+ export const MEDIA_TYPE = MediaTypeOptions;
18
16
  export function saveMedia(opts, type, API) {
19
17
  return __awaiter(this, void 0, void 0, function* () {
20
18
  const { filePath, success, fail, complete } = opts;
21
- const { granted } = yield ImagePicker.requestMediaLibraryPermissionsAsync();
19
+ const { granted } = yield requestMediaLibraryPermissionsAsync();
22
20
  if (!granted) {
23
21
  const res = { errMsg: 'Permissions denied!' };
24
22
  return errorHandler(fail, complete)(res);
@@ -36,38 +34,72 @@ export function saveMedia(opts, type, API) {
36
34
  }
37
35
  });
38
36
  }
39
- export function chooseMedia(opts, mediaTypes) {
40
- var _a, _b, _c;
37
+ function showPicker(opts, mediaTypes) {
38
+ return __awaiter(this, void 0, void 0, function* () {
39
+ const { fail, complete } = opts;
40
+ try {
41
+ const res = yield showActionSheet({
42
+ itemList: ['拍摄', '从手机相册选择'],
43
+ });
44
+ if (res.tapIndex === 0) {
45
+ return _chooseMedia(Object.assign(Object.assign({}, opts), { sourceType: ['camera'] }), mediaTypes);
46
+ }
47
+ if (res.tapIndex === 1) {
48
+ return _chooseMedia(Object.assign(Object.assign({}, opts), { sourceType: ['album'] }), mediaTypes);
49
+ }
50
+ }
51
+ catch (err) {
52
+ const res = { errMsg: `choose${mediaTypes === MediaTypeOptions.Images ? 'Image' : mediaTypes === MediaTypeOptions.Videos ? 'Video' : 'Media'} fail` };
53
+ fail === null || fail === void 0 ? void 0 : fail(res);
54
+ complete === null || complete === void 0 ? void 0 : complete(res);
55
+ }
56
+ });
57
+ }
58
+ export function chooseMedia(opts = {}, mediaTypes) {
41
59
  return __awaiter(this, void 0, void 0, function* () {
42
- if (!opts || typeof opts !== 'object') {
43
- opts = {};
60
+ const { sourceType = ['album', 'camera'], } = opts;
61
+ if ((sourceType === null || sourceType === void 0 ? void 0 : sourceType.includes('camera')) && (sourceType === null || sourceType === void 0 ? void 0 : sourceType.includes('album'))) {
62
+ return showPicker(opts, mediaTypes);
63
+ }
64
+ else if (sourceType === null || sourceType === void 0 ? void 0 : sourceType.includes('camera')) {
65
+ return _chooseMedia(Object.assign(Object.assign({}, opts), { sourceType: ['camera'] }), mediaTypes);
44
66
  }
45
- const { sizeType = [], sourceType = [], success, fail, complete, maxDuration, count } = opts;
67
+ return _chooseMedia(Object.assign(Object.assign({}, opts), { sourceType: ['album'] }), mediaTypes);
68
+ });
69
+ }
70
+ export function _chooseMedia(opts = {}, mediaTypes) {
71
+ var _a, _b, _c;
72
+ return __awaiter(this, void 0, void 0, function* () {
73
+ const { sizeType = [], sourceType = [], success, fail, complete, maxDuration, count = (mediaTypes === MEDIA_TYPE.Videos ? 1 : 9), compressed } = opts;
46
74
  const options = {
47
75
  mediaTypes,
48
- quality: sizeType[0] === 'compressed' ? 0.7 : 1,
76
+ quality: (sizeType[0] === 'compressed' || compressed) ? 0.7 : 1,
49
77
  videoMaxDuration: maxDuration,
50
- allowsMultipleSelection: (mediaTypes === MEDIA_TYPE.IMAGES && count > 1) ? true : false,
51
- selectionLimit: mediaTypes === MEDIA_TYPE.VIDEOS ? 1 : (count || 9),
78
+ allowsMultipleSelection: count > 1,
79
+ selectionLimit: count,
52
80
  };
81
+ const messString = mediaTypes === MediaTypeOptions.Images ? 'Image' : mediaTypes === MediaTypeOptions.Videos ? 'Video' : 'Media';
53
82
  const isCamera = sourceType[0] === 'camera';
54
- const { granted } = isCamera ? yield requestCameraPermissionsAsync() : yield ImagePicker.requestMediaLibraryPermissionsAsync();
83
+ const { granted } = isCamera ? yield requestCameraPermissionsAsync() : yield requestMediaLibraryPermissionsAsync();
55
84
  if (!granted) {
56
85
  const res = { errMsg: 'Permissions denied!' };
57
86
  return errorHandler(fail, complete)(res);
58
87
  }
59
- let launchMediaAsync = isCamera ? ImagePicker.launchCameraAsync : ImagePicker.launchImageLibraryAsync;
88
+ let launchMediaAsync = isCamera ? launchCameraAsync : launchImageLibraryAsync;
60
89
  try {
61
90
  const resp = yield launchMediaAsync(options);
62
91
  let res = {};
63
- if (mediaTypes === MEDIA_TYPE.VIDEOS) {
92
+ if (mediaTypes === MEDIA_TYPE.Videos) {
64
93
  const asset = (_a = resp.assets) === null || _a === void 0 ? void 0 : _a[0];
65
94
  res = Object.assign(Object.assign({}, asset), { tempFilePath: asset === null || asset === void 0 ? void 0 : asset.uri, size: asset === null || asset === void 0 ? void 0 : asset.fileSize });
66
95
  }
67
96
  else {
68
97
  res = {
69
98
  tempFilePaths: (_b = resp.assets) === null || _b === void 0 ? void 0 : _b.map((item) => item.uri),
70
- tempFiles: (_c = resp.assets) === null || _c === void 0 ? void 0 : _c.map((item) => (Object.assign(Object.assign({}, item), { path: item.uri, size: item.fileSize, type: item.mimeType })))
99
+ tempFiles: (_c = resp.assets) === null || _c === void 0 ? void 0 : _c.map((item) => {
100
+ var _a;
101
+ return (Object.assign(Object.assign({}, item), { path: item.uri, size: item.fileSize, type: item.mimeType, fileType: ((_a = item.mimeType) === null || _a === void 0 ? void 0 : _a.startsWith('video')) ? 'video' : 'image' }));
102
+ })
71
103
  };
72
104
  }
73
105
  if (res.tempFilePath || (!!res.tempFilePaths && res.tempFilePaths.length > 0)) {
@@ -75,14 +107,14 @@ export function chooseMedia(opts, mediaTypes) {
75
107
  }
76
108
  else {
77
109
  const res = {
78
- errMsg: mediaTypes === MEDIA_TYPE.VIDEOS ? 'chooseVideo:fail cancel' : 'chooseImage:fail cancel',
110
+ errMsg: `choose${messString}:fail cancel`
79
111
  };
80
112
  return errorHandler(fail, complete)(res);
81
113
  }
82
114
  }
83
115
  catch (err) {
84
116
  const res = {
85
- errMsg: mediaTypes === MEDIA_TYPE.VIDEOS ? 'chooseVideo fail' : 'chooseImage fail',
117
+ errMsg: `choose${messString}:fail`,
86
118
  err
87
119
  };
88
120
  return errorHandler(fail, complete)(res);
@@ -1 +1 @@
1
- {"version":3,"file":"media.js","sourceRoot":"","sources":["../../src/lib/media.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"media.js","sourceRoot":"","sources":["../../src/lib/media.ts"],"names":[],"mappings":"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"}
@@ -138,7 +138,7 @@ function scanFromPhoto(callback, errorCallBack) {
138
138
  });
139
139
  }
140
140
  }
141
- }, MEDIA_TYPE.IMAGES).catch(errorCallBack);
141
+ }, MEDIA_TYPE.Images).catch(errorCallBack);
142
142
  }
143
143
  export function scanCode(option = {}) {
144
144
  return __awaiter(this, void 0, void 0, function* () {
package/libList.js CHANGED
@@ -6,6 +6,7 @@ module.exports = [
6
6
  'base64ToArrayBuffer',
7
7
  'canIUse',
8
8
  'chooseImage',
9
+ 'chooseMedia',
9
10
  'chooseVideo',
10
11
  'clearStorage',
11
12
  'clearStorageSync',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tarojs/taro-rn",
3
- "version": "4.0.0-beta.7",
3
+ "version": "4.0.0-beta.8",
4
4
  "description": "Taro RN framework",
5
5
  "main": "dist/index.js",
6
6
  "typings": "types/index.d.ts",
@@ -47,7 +47,7 @@
47
47
  "react-native-root-toast": "^3.5.1",
48
48
  "react-native-safe-area-context": "~4.8.0",
49
49
  "react-native-stylekit": "^1.0.0",
50
- "@tarojs/runtime-rn": "4.0.0-beta.7"
50
+ "@tarojs/runtime-rn": "4.0.0-beta.8"
51
51
  },
52
52
  "devDependencies": {
53
53
  "@babel/core": "^7.14.5",
@@ -1,33 +1,5 @@
1
1
  import { chooseMedia, MEDIA_TYPE } from '../media'
2
- import { showActionSheet } from '../showActionSheet'
3
2
 
4
3
  export function chooseImage(opts: Taro.chooseImage.Option): Promise<any> {
5
- const {
6
- sourceType = ['album', 'camera'],
7
- } = opts
8
- if(sourceType?.includes('camera') && sourceType?.includes('album')) {
9
- return showImagePicker(opts)
10
- } else if (sourceType?.includes('camera')) {
11
- return chooseMedia({...opts, sourceType: ['camera']}, MEDIA_TYPE.IMAGES)
12
- }
13
- return chooseMedia({...opts, sourceType: ['album']}, MEDIA_TYPE.IMAGES)
14
- }
15
-
16
- async function showImagePicker(options: Taro.chooseImage.Option):Promise<any> {
17
- const { fail, complete } = options
18
- try {
19
- const res = await showActionSheet({
20
- itemList: ['拍照', '从手机相册选择'],
21
- })
22
- if (res.tapIndex === 0) {
23
- return chooseMedia({...options, sourceType: ['camera']}, MEDIA_TYPE.IMAGES)
24
- }
25
- if (res.tapIndex === 1) {
26
- return chooseMedia({...options, sourceType: ['album']}, MEDIA_TYPE.IMAGES)
27
- }
28
- } catch (err) {
29
- const res = { errMsg: 'chooseImage: fail' }
30
- fail?.(res)
31
- complete?.(res)
32
- }
4
+ return chooseMedia(opts, MEDIA_TYPE.Images)
33
5
  }
@@ -0,0 +1,15 @@
1
+ import { chooseMedia as _chooseMedia, MEDIA_TYPE } from '../media'
2
+
3
+ export function chooseMedia (opts: Taro.chooseMedia.Option): Promise<any> {
4
+ if (opts.mediaType?.length === 1) {
5
+ if (opts.mediaType[0] === 'video') {
6
+ return _chooseMedia(opts, MEDIA_TYPE.Videos)
7
+ } else if (opts.mediaType[0] === 'image') {
8
+ return _chooseMedia(opts, MEDIA_TYPE.Images)
9
+ } else {
10
+ return _chooseMedia(opts, MEDIA_TYPE.All)
11
+ }
12
+ } else {
13
+ return _chooseMedia(opts, MEDIA_TYPE.All)
14
+ }
15
+ }
@@ -1,35 +1,5 @@
1
1
  import { chooseMedia, MEDIA_TYPE } from '../media'
2
- import { showActionSheet } from '../showActionSheet'
3
2
 
4
3
  export function chooseVideo(opts: Taro.chooseVideo.Option): Promise<any> {
5
- const {
6
- sourceType = ['album', 'camera'],
7
- compressed
8
- } = opts
9
- opts = Object.assign(opts, { sizeType: compressed ? ['compressed'] : [] })
10
- if(sourceType?.includes('camera') && sourceType?.includes('album')) {
11
- return showVideoPicker(opts)
12
- } else if (sourceType?.includes('camera')) {
13
- return chooseMedia({...opts, sourceType: ['camera']}, MEDIA_TYPE.VIDEOS)
14
- }
15
- return chooseMedia({...opts, sourceType: ['album']}, MEDIA_TYPE.VIDEOS)
16
- }
17
-
18
- async function showVideoPicker(options: Taro.chooseVideo.Option):Promise<any> {
19
- const { fail, complete } = options
20
- try {
21
- const res = await showActionSheet({
22
- itemList: ['拍摄', '从手机相册选择'],
23
- })
24
- if (res.tapIndex === 0) {
25
- return chooseMedia({...options, sourceType: ['camera']}, MEDIA_TYPE.VIDEOS)
26
- }
27
- if (res.tapIndex === 1) {
28
- return chooseMedia({...options, sourceType: ['album']}, MEDIA_TYPE.VIDEOS)
29
- }
30
- } catch (err) {
31
- const res = { errMsg: 'chooseVideo: fail' }
32
- fail?.(res)
33
- complete?.(res)
34
- }
4
+ return chooseMedia(opts, MEDIA_TYPE.Videos)
35
5
  }
package/src/lib/index.ts CHANGED
@@ -5,6 +5,7 @@ export * from './authorize'
5
5
  export * from './base64ToArrayBuffer'
6
6
  export * from './canIUse'
7
7
  export * from './chooseImage'
8
+ export * from './chooseMedia'
8
9
  export * from './chooseVideo'
9
10
  export * from './clearStorage'
10
11
  export * from './clearStorageSync'
package/src/lib/media.ts CHANGED
@@ -1,16 +1,20 @@
1
1
  import { CameraRoll } from "@react-native-camera-roll/camera-roll"
2
2
  import { requestCameraPermissionsAsync } from 'expo-camera'
3
- import * as ImagePicker from 'expo-image-picker'
3
+ import {
4
+ requestMediaLibraryPermissionsAsync,
5
+ launchImageLibraryAsync,
6
+ launchCameraAsync,
7
+ MediaTypeOptions,
8
+ ImagePickerAsset,
9
+ } from 'expo-image-picker'
4
10
  import { successHandler, errorHandler } from '../utils'
11
+ import { showActionSheet } from "./showActionSheet"
5
12
 
6
- export const MEDIA_TYPE = {
7
- VIDEOS: 'Videos',
8
- IMAGES: 'Images'
9
- }
13
+ export const MEDIA_TYPE = MediaTypeOptions
10
14
 
11
15
  export async function saveMedia(opts: Taro.saveImageToPhotosAlbum.Option | Taro.saveVideoToPhotosAlbum.Option, type:string, API:string):Promise<TaroGeneral.CallbackResult> {
12
16
  const { filePath, success, fail, complete } = opts
13
- const { granted } = await ImagePicker.requestMediaLibraryPermissionsAsync()
17
+ const { granted } = await requestMediaLibraryPermissionsAsync()
14
18
  if (!granted) {
15
19
  const res = { errMsg: 'Permissions denied!' }
16
20
  return errorHandler(fail, complete)(res)
@@ -28,30 +32,70 @@ export async function saveMedia(opts: Taro.saveImageToPhotosAlbum.Option | Taro.
28
32
  }
29
33
  }
30
34
 
31
- export async function chooseMedia(opts: Taro.chooseImage.Option | Taro.chooseVideo.Option, mediaTypes: any): Promise<TaroGeneral.CallbackResult> {
32
- if (!opts || typeof opts !== 'object') {
33
- opts = {}
35
+ async function showPicker(opts: Taro.chooseImage.Option | Taro.chooseVideo.Option | Taro.chooseMedia.Option, mediaTypes: MediaTypeOptions):Promise<any> {
36
+ const { fail, complete } = opts
37
+ try {
38
+ const res = await showActionSheet({
39
+ itemList: ['拍摄', '从手机相册选择'],
40
+ })
41
+ if (res.tapIndex === 0) {
42
+ return _chooseMedia({...opts, sourceType: ['camera']}, mediaTypes)
43
+ }
44
+ if (res.tapIndex === 1) {
45
+ return _chooseMedia({...opts, sourceType: ['album']}, mediaTypes)
46
+ }
47
+ } catch (err) {
48
+ const res = { errMsg: `choose${
49
+ mediaTypes === MediaTypeOptions.Images ? 'Image' : mediaTypes === MediaTypeOptions.Videos ? 'Video' : 'Media'
50
+ } fail` }
51
+ fail?.(res)
52
+ complete?.(res)
53
+ }
54
+ }
55
+
56
+ export async function chooseMedia(opts: Taro.chooseImage.Option | Taro.chooseVideo.Option | Taro.chooseMedia.Option = {}, mediaTypes: MediaTypeOptions): Promise<TaroGeneral.CallbackResult> {
57
+ const {
58
+ sourceType = ['album', 'camera'],
59
+ } = opts
60
+ if(sourceType?.includes('camera') && sourceType?.includes('album')) {
61
+ return showPicker(opts, mediaTypes)
62
+ } else if (sourceType?.includes('camera')) {
63
+ return _chooseMedia({...opts, sourceType: ['camera']}, mediaTypes)
34
64
  }
35
- const { sizeType = [], sourceType = [], success, fail, complete, maxDuration, count } = opts as any
65
+ return _chooseMedia({...opts, sourceType: ['album']}, mediaTypes)
66
+ }
67
+
68
+ export async function _chooseMedia(opts: Taro.chooseImage.Option | Taro.chooseVideo.Option | Taro.chooseMedia.Option = {}, mediaTypes: MediaTypeOptions): Promise<TaroGeneral.CallbackResult> {
69
+ const {
70
+ sizeType = [],
71
+ sourceType = [],
72
+ success,
73
+ fail,
74
+ complete,
75
+ maxDuration,
76
+ count = (mediaTypes === MEDIA_TYPE.Videos ? 1 : 9),
77
+ compressed
78
+ } = opts as any
36
79
  const options = {
37
80
  mediaTypes,
38
- quality: sizeType[0] === 'compressed' ? 0.7 : 1,
81
+ quality: (sizeType[0] === 'compressed' || compressed) ? 0.7 : 1,
39
82
  videoMaxDuration: maxDuration,
40
- allowsMultipleSelection: (mediaTypes === MEDIA_TYPE.IMAGES && count > 1) ? true : false,
41
- selectionLimit: mediaTypes === MEDIA_TYPE.VIDEOS ? 1 : (count || 9),
83
+ allowsMultipleSelection: count > 1,
84
+ selectionLimit: count,
42
85
  }
86
+ const messString = mediaTypes === MediaTypeOptions.Images ? 'Image' : mediaTypes === MediaTypeOptions.Videos ? 'Video' : 'Media'
43
87
  const isCamera = sourceType[0] === 'camera'
44
- const { granted } = isCamera ? await requestCameraPermissionsAsync() : await ImagePicker.requestMediaLibraryPermissionsAsync()
88
+ const { granted } = isCamera ? await requestCameraPermissionsAsync() : await requestMediaLibraryPermissionsAsync()
45
89
  if (!granted) {
46
90
  const res = { errMsg: 'Permissions denied!' }
47
91
  return errorHandler(fail, complete)(res)
48
92
  }
49
93
 
50
- let launchMediaAsync = isCamera ? ImagePicker.launchCameraAsync : ImagePicker.launchImageLibraryAsync
94
+ let launchMediaAsync = isCamera ? launchCameraAsync : launchImageLibraryAsync
51
95
  try {
52
96
  const resp = await launchMediaAsync(options)
53
97
  let res: any = {}
54
- if (mediaTypes === MEDIA_TYPE.VIDEOS) {
98
+ if (mediaTypes === MEDIA_TYPE.Videos) {
55
99
  const asset = resp.assets?.[0]
56
100
  res = {
57
101
  ...asset,
@@ -61,11 +105,12 @@ export async function chooseMedia(opts: Taro.chooseImage.Option | Taro.chooseVid
61
105
  } else {
62
106
  res = {
63
107
  tempFilePaths: resp.assets?.map((item) => item.uri),
64
- tempFiles: resp.assets?.map((item) => ({
108
+ tempFiles: resp.assets?.map((item: ImagePickerAsset) => ({
65
109
  ...item,
66
110
  path: item.uri,
67
111
  size: item.fileSize,
68
112
  type: item.mimeType,
113
+ fileType: item.mimeType?.startsWith('video') ? 'video' : 'image',
69
114
  }))
70
115
  }
71
116
  }
@@ -73,13 +118,13 @@ export async function chooseMedia(opts: Taro.chooseImage.Option | Taro.chooseVid
73
118
  return successHandler(success, complete)(res)
74
119
  } else {
75
120
  const res = {
76
- errMsg: mediaTypes === MEDIA_TYPE.VIDEOS ? 'chooseVideo:fail cancel' : 'chooseImage:fail cancel',
121
+ errMsg: `choose${messString}:fail cancel`
77
122
  }
78
123
  return errorHandler(fail, complete)(res)
79
124
  }
80
125
  } catch (err) {
81
126
  const res = {
82
- errMsg: mediaTypes === MEDIA_TYPE.VIDEOS ? 'chooseVideo fail' : 'chooseImage fail',
127
+ errMsg: `choose${messString}:fail`,
83
128
  err
84
129
  }
85
130
  return errorHandler(fail, complete)(res)
@@ -143,7 +143,7 @@ function scanFromPhoto(callback, errorCallBack) {
143
143
  })
144
144
  }
145
145
  }
146
- }, MEDIA_TYPE.IMAGES).catch(errorCallBack)
146
+ }, MEDIA_TYPE.Images).catch(errorCallBack)
147
147
  }
148
148
 
149
149
  export async function scanCode(option: Taro.scanCode.Option = {}): Promise<Taro.scanCode.SuccessCallbackResult> {