@tarojs/taro-rn 3.7.0-canary.2 → 3.7.0-canary.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.
@@ -1,153 +1,44 @@
1
- import SYImagePicker from 'react-native-syan-image-picker';
2
- import { shouldBeObject } from '../../utils';
1
+ import { chooseMedia, MEDIA_TYPE } from '../media';
3
2
  import { showActionSheet } from '../showActionSheet';
4
- const res = { errMsg: 'chooseImage:ok' };
5
- const defaultOptions = {
6
- count: 9,
7
- sizeType: ['original', 'compressed'],
8
- sourceType: ['album', 'camera']
9
- };
10
- function getRes(images) {
11
- const tempFilePaths = [];
12
- const tempFiles = [];
13
- images.forEach((item) => {
14
- tempFilePaths.push(item.uri);
15
- tempFiles.push({
16
- path: item.uri,
17
- size: item.size
18
- });
19
- });
20
- return { tempFilePaths, tempFiles };
21
- }
22
- function openCamera(options) {
23
- const { success, fail, complete } = options;
24
- return new Promise((resolve, reject) => {
25
- SYImagePicker.openCamera({
26
- compressFocusAlpha: true
27
- }, (err, photo) => {
28
- if (err) {
29
- const res = {
30
- errMsg: err
31
- };
32
- fail === null || fail === void 0 ? void 0 : fail(res);
33
- complete === null || complete === void 0 ? void 0 : complete(res);
34
- reject(res);
35
- }
36
- else {
37
- try {
38
- const data = Object.assign({}, getRes(photo), res);
39
- success === null || success === void 0 ? void 0 : success(data);
40
- complete === null || complete === void 0 ? void 0 : complete(data);
41
- resolve(data);
42
- }
43
- catch (error) {
44
- // 错误
45
- reject(error);
46
- }
47
- }
48
- });
49
- });
50
- }
51
- // NOTE: 调用此函数会改变图片的像素尺寸
52
- function openPicker(options) {
53
- const { count: imageCount, sizeType = [], success, complete, fail } = options;
54
- return new Promise((resolve, reject) => {
55
- // NOTE:react-native-syan-image-picker 暂不支持 Android 端压缩
56
- SYImagePicker.showImagePicker({
57
- compressFocusAlpha: true,
58
- imageCount,
59
- quality: sizeType[0] === 'compressed' ? 70 : 90,
60
- }, (err, photos) => {
61
- if (err) {
62
- const res = {
63
- errMsg: err
64
- };
65
- fail === null || fail === void 0 ? void 0 : fail(res);
66
- complete === null || complete === void 0 ? void 0 : complete(res);
67
- reject(res);
68
- }
69
- else {
70
- try {
71
- const data = Object.assign({}, getRes(photos), res);
72
- success === null || success === void 0 ? void 0 : success(data);
73
- complete === null || complete === void 0 ? void 0 : complete(data);
74
- resolve(data);
75
- }
76
- catch (error) {
77
- reject(error);
78
- }
79
- }
80
- });
81
- });
3
+ export function chooseImage(opts) {
4
+ const { sourceType } = opts;
5
+ switch (JSON.stringify(sourceType)) {
6
+ case '[\'camera\']':
7
+ case '["camera"]':
8
+ return chooseMedia(Object.assign(Object.assign({}, opts), { sourceType: ['camera'] }), MEDIA_TYPE.IMAGES);
9
+ case '[\'album\']':
10
+ case '["album"]':
11
+ return chooseMedia(Object.assign(Object.assign({}, opts), { sourceType: ['album'] }), MEDIA_TYPE.IMAGES);
12
+ default:
13
+ return showImagePicker(opts);
14
+ }
82
15
  }
83
- /**
84
- * @description Display the image picker.
85
- * @param options
86
- * @returns {Promise}
87
- */
88
16
  function showImagePicker(options) {
89
17
  const { fail, complete } = options;
90
18
  return new Promise((resolve, reject) => {
91
19
  showActionSheet({
92
20
  itemList: ['拍照', '从手机相册选择'],
93
- success(res) {
94
- console.log(res.tapIndex);
21
+ success: function (res) {
95
22
  if (res.tapIndex === 0) {
96
- // 不添加 setTimeout 会有一定概率卡死,肯能是与 sibling.destroy() 冲突
97
- setTimeout(() => {
98
- openCamera(options).then(res => {
99
- resolve(res);
100
- }).catch(e => {
101
- fail === null || fail === void 0 ? void 0 : fail({ errMsg: `chooseImage:${e.message}` });
102
- complete === null || complete === void 0 ? void 0 : complete({ errMsg: `chooseImage:${e.message}` });
103
- reject(new Error(`chooseImage:${e.message}`));
104
- });
105
- }, 100);
23
+ resolve(chooseMedia(Object.assign(Object.assign({}, options), { sourceType: ['camera'] }), MEDIA_TYPE.IMAGES));
106
24
  }
107
25
  if (res.tapIndex === 1) {
108
- setTimeout(() => {
109
- openPicker(options).then(res => {
110
- resolve(res);
111
- }).catch(e => {
112
- fail === null || fail === void 0 ? void 0 : fail({ errMsg: `chooseImage:${e.message}` });
113
- complete === null || complete === void 0 ? void 0 : complete({ errMsg: `chooseImage:${e.message}` });
114
- reject(new Error(`chooseImage:${e.message}`));
115
- });
116
- }, 100);
26
+ resolve(chooseMedia(Object.assign(Object.assign({}, options), { sourceType: ['album'] }), MEDIA_TYPE.IMAGES));
117
27
  }
118
28
  },
119
- fail(res) {
120
- console.log('error: ', res.errMsg);
29
+ fail: function () {
30
+ const res = { errMsg: 'chooseImage:fail cancel' };
31
+ reject(res);
32
+ }
33
+ }).catch(err => {
34
+ console.log('error: ', err.errMsg);
35
+ if (/showActionSheet:fail cancel/.test(err.errMsg)) {
36
+ const res = { errMsg: 'chooseImage:fail cancel' };
37
+ fail === null || fail === void 0 ? void 0 : fail(res);
38
+ complete === null || complete === void 0 ? void 0 : complete(res);
39
+ reject(res);
121
40
  }
122
41
  });
123
42
  });
124
43
  }
125
- /**
126
- * @deprecated
127
- * @description 从本地相册选择图片或使用相机拍照。
128
- * sizeType ❌
129
- * @param options
130
- * @returns {Promise<*>}
131
- */
132
- export function chooseImage(options) {
133
- // options must be an Object
134
- const isObject = shouldBeObject(options);
135
- if (!isObject.res) {
136
- const res = { errMsg: `chooseImage${isObject.msg}` };
137
- console.error(res.errMsg);
138
- return Promise.reject(res);
139
- }
140
- options = Object.assign({}, defaultOptions, options);
141
- const { sourceType } = options;
142
- switch (JSON.stringify(sourceType)) {
143
- case '[\'camera\']':
144
- case '["camera"]':
145
- return openCamera(options);
146
- case '[\'album\']':
147
- case '["album"]':
148
- return openPicker(options);
149
- default:
150
- return showImagePicker(options);
151
- }
152
- }
153
44
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/chooseImage/index.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,MAAM,gCAAgC,CAAA;AAE1D,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAEpD,MAAM,GAAG,GAAG,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAA;AACxC,MAAM,cAAc,GAAG;IACrB,KAAK,EAAE,CAAC;IACR,QAAQ,EAAE,CAAC,UAAU,EAAE,YAAY,CAAC;IACpC,UAAU,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC;CAChC,CAAA;AAED,SAAS,MAAM,CAAC,MAAM;IACpB,MAAM,aAAa,GAAa,EAAE,CAAA;IAClC,MAAM,SAAS,GAAU,EAAE,CAAA;IAC3B,MAAM,CAAC,OAAO,CAAC,CAAC,IAAS,EAAE,EAAE;QAC3B,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAC5B,SAAS,CAAC,IAAI,CAAC;YACb,IAAI,EAAE,IAAI,CAAC,GAAG;YACd,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IACF,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,CAAA;AACrC,CAAC;AAED,SAAS,UAAU,CAAC,OAAgC;IAClD,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAA;IAC3C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,aAAa,CAAC,UAAU,CAAC;YACvB,kBAAkB,EAAE,IAAI;SACzB,EAAE,CAAC,GAAG,EAAE,KAAU,EAAE,EAAE;YACrB,IAAI,GAAG,EAAE;gBACP,MAAM,GAAG,GAAG;oBACV,MAAM,EAAE,GAAG;iBACZ,CAAA;gBACD,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAG,GAAG,CAAC,CAAA;gBACX,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,GAAG,CAAC,CAAA;gBACf,MAAM,CAAC,GAAG,CAAC,CAAA;aACZ;iBAAM;gBACL,IAAI;oBACF,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAA;oBAClD,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAG,IAAI,CAAC,CAAA;oBACf,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,IAAI,CAAC,CAAA;oBAChB,OAAO,CAAC,IAAI,CAAC,CAAA;iBACd;gBAAC,OAAO,KAAK,EAAE;oBACd,KAAK;oBACL,MAAM,CAAC,KAAK,CAAC,CAAA;iBACd;aACF;QACH,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,wBAAwB;AACxB,SAAS,UAAU,CAAC,OAAgC;IAClD,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,GAAG,EAAE,EAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,OAAO,CAAA;IAC5E,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,uDAAuD;QACvD,aAAa,CAAC,eAAe,CAAC;YAC5B,kBAAkB,EAAE,IAAI;YACxB,UAAU;YACV,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;SAChD,EAAE,CAAC,GAAG,EAAE,MAAW,EAAE,EAAE;YACtB,IAAI,GAAG,EAAE;gBACP,MAAM,GAAG,GAAG;oBACV,MAAM,EAAE,GAAG;iBACZ,CAAA;gBACD,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAG,GAAG,CAAC,CAAA;gBACX,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,GAAG,CAAC,CAAA;gBACf,MAAM,CAAC,GAAG,CAAC,CAAA;aACZ;iBAAM;gBACL,IAAI;oBACF,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAA;oBACnD,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAG,IAAI,CAAC,CAAA;oBACf,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,IAAI,CAAC,CAAA;oBAChB,OAAO,CAAC,IAAI,CAAC,CAAA;iBACd;gBAAC,OAAO,KAAK,EAAE;oBACd,MAAM,CAAC,KAAK,CAAC,CAAA;iBACd;aACF;QACH,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAS,eAAe,CAAC,OAAgC;IACvD,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAA;IAClC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,eAAe,CAAC;YACd,QAAQ,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC;YAC3B,OAAO,CAAC,GAAG;gBACT,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;gBACzB,IAAI,GAAG,CAAC,QAAQ,KAAK,CAAC,EAAE;oBACtB,oDAAoD;oBACpD,UAAU,CAAC,GAAG,EAAE;wBACd,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;4BAC7B,OAAO,CAAC,GAAG,CAAC,CAAA;wBACd,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;4BACX,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAG,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;4BAC9C,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;4BAClD,MAAM,CAAC,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;wBAC/C,CAAC,CAAC,CAAA;oBACJ,CAAC,EAAE,GAAG,CAAC,CAAA;iBACR;gBACD,IAAI,GAAG,CAAC,QAAQ,KAAK,CAAC,EAAE;oBACtB,UAAU,CAAC,GAAG,EAAE;wBACd,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;4BAC7B,OAAO,CAAC,GAAG,CAAC,CAAA;wBACd,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;4BACX,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAG,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;4BAC9C,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,EAAE,MAAM,EAAE,eAAe,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;4BAClD,MAAM,CAAC,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;wBAC/C,CAAC,CAAC,CAAA;oBACJ,CAAC,EAAE,GAAG,CAAC,CAAA;iBACR;YACH,CAAC;YACD,IAAI,CAAC,GAAG;gBACN,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;YACpC,CAAC;SACF,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,OAAgC;IAC1D,4BAA4B;IAC5B,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;IACxC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE;QACjB,MAAM,GAAG,GAAG,EAAE,MAAM,EAAE,cAAc,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAA;QACpD,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACzB,OAAO,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;KAC3B;IAED,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,cAAc,EAAE,OAAO,CAAC,CAAA;IACpD,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAA;IAE9B,QAAQ,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE;QAClC,KAAK,cAAc,CAAC;QACpB,KAAK,YAAY;YACf,OAAO,UAAU,CAAC,OAAO,CAAC,CAAA;QAC5B,KAAK,aAAa,CAAC;QACnB,KAAK,WAAW;YACd,OAAO,UAAU,CAAC,OAAO,CAAC,CAAA;QAC5B;YACE,OAAO,eAAe,CAAC,OAAO,CAAC,CAAA;KAClC;AACH,CAAC"}
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,EAAE,UAAU,EAAE,GAAG,IAAI,CAAA;IAC3B,QAAQ,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE;QAClC,KAAK,cAAc,CAAC;QACpB,KAAK,YAAY;YACf,OAAO,WAAW,iCAAK,IAAI,KAAE,UAAU,EAAE,CAAC,QAAQ,CAAC,KAAG,UAAU,CAAC,MAAM,CAAC,CAAA;QAC1E,KAAK,aAAa,CAAC;QACnB,KAAK,WAAW;YACd,OAAO,WAAW,iCAAK,IAAI,KAAE,UAAU,EAAE,CAAC,OAAO,CAAC,KAAG,UAAU,CAAC,MAAM,CAAC,CAAA;QACzE;YACE,OAAO,eAAe,CAAC,IAAI,CAAC,CAAA;KAC/B;AACH,CAAC;AAED,SAAS,eAAe,CAAC,OAAgC;IACvD,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAA;IAClC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,eAAe,CAAC;YACd,QAAQ,EAAE,CAAC,IAAI,EAAE,SAAS,CAAC;YAC3B,OAAO,EAAE,UAAU,GAAG;gBACpB,IAAI,GAAG,CAAC,QAAQ,KAAK,CAAC,EAAE;oBACtB,OAAO,CAAC,WAAW,iCAAK,OAAO,KAAE,UAAU,EAAE,CAAC,QAAQ,CAAC,KAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAA;iBAC9E;gBACD,IAAI,GAAG,CAAC,QAAQ,KAAK,CAAC,EAAE;oBACtB,OAAO,CAAC,WAAW,iCAAK,OAAO,KAAE,UAAU,EAAE,CAAC,OAAO,CAAC,KAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAA;iBAC7E;YACH,CAAC;YACD,IAAI,EAAE;gBACJ,MAAM,GAAG,GAAG,EAAE,MAAM,EAAE,yBAAyB,EAAE,CAAA;gBACjD,MAAM,CAAC,GAAG,CAAC,CAAA;YACb,CAAC;SACF,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;YACb,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;YAClC,IAAI,6BAA6B,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;gBAClD,MAAM,GAAG,GAAG,EAAE,MAAM,EAAE,yBAAyB,EAAE,CAAA;gBACjD,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAG,GAAG,CAAC,CAAA;gBACX,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,GAAG,CAAC,CAAA;gBACf,MAAM,CAAC,GAAG,CAAC,CAAA;aACZ;QACH,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC"}
package/dist/setup.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"AAAA,OAAO,4CAA4C,CAAA;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAA;AAClE,OAAO,cAAc,MAAM,mDAAmD,CAAA;AAC9E,OAAO,mBAAmB,MAAM,mEAAmE,CAAA;AACnG,OAAO,iBAAiB,MAAM,6DAA6D,CAAA;AAC3F,OAAO,gBAAgB,MAAM,uDAAuD,CAAA;AACpF,OAAO,kBAAkB,MAAM,yCAAyC,CAAA;AACxE,OAAO,gBAAgB,MAAM,wCAAwC,CAAA;AACrE,IAAI,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAA;AACnE,IAAI,CAAC,MAAM,CAAC,iCAAiC,EAAE,GAAG,EAAE,CAAC,iCAAM,cAAc,KAAE,gBAAgB,IAAG,CAAC,CAAA;AAC/F,IAAI,CAAC,MAAM,CAAC,2CAA2C,EAAE,GAAG,EAAE,CAAC,mBAAmB,CAAC,CAAA;AACnF,IAAI,CAAC,MAAM,CAAC,qCAAqC,EAAE,GAAG,EAAE,CAAC,kBAAkB,CAAC,CAAA;AAC5E,IAAI,CAAC,MAAM,CAAC,mCAAmC,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,CAAA;AACxE,IAAI,CAAC,MAAM,CAAC,0BAA0B,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,CAAA;AAChE,IAAI,CAAC,IAAI,CAAC,uCAAuC,EAAE,GAAG,EAAE,CAAC,gBAAgB,CAAC,CAAA;AAE1E,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,GAAG,EAAE;IAC7B,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAQ,CAAA;IAC7D,WAAW,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,OAAY,EAAE,EAAE;QACzD,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;QAC9C,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;IACpC,CAAC,CAAC,CAAC;IACH,OAAO,WAAW,CAAA;AACpB,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACpC,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAQ,CAAA;IACjE,MAAM,EAAE,kBAAkB,EAAE,GAAG,UAAU,CAAA;IAEzC,kBAAkB,CAAC,YAAY,GAAG;QAChC,uBAAuB,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC;YACrD,MAAM,EAAE;gBACN,QAAQ,EAAE,CAAC;gBACX,SAAS,EAAE,CAAC;gBACZ,KAAK,EAAE,CAAC;gBACR,QAAQ,EAAE,CAAC;gBACX,QAAQ,EAAE,CAAC;aACZ;SACF,CAAC,CAAC;KACJ,CAAA;IACD,OAAO,UAAU,CAAA;AACnB,CAAC,CAAC,CAAA;AAEF,MAAM,cAAc,GAAG,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC;IACnD,OAAO,EAAE,IAAI;CACd,CAAC,CAAC,CAAA;AAEH,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACpC,MAAM,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAQ,CAAA;IACtE,eAAe,CAAC,mCAAmC,GAAG,cAAc,CAAA;IACpE,OAAO,eAAe,CAAA;AACxB,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,GAAG,EAAE;IAChC,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,CAAQ,CAAA;IAC/D,YAAY,CAAC,iCAAiC,GAAG,cAAc,CAAA;IAC/D,OAAO,YAAY,CAAA;AACrB,CAAC,CAAC,CAAA;AAEF,IAAI,CAAC,MAAM,CAAC,sBAAsB,EAAE,GAAG,EAAE;IACvC,MAAM,kBAAkB,GAAG,IAAI,CAAC,aAAa,CAAC,sBAAsB,CAAQ,CAAA;IAC5E,kBAAkB,CAAC,uBAAuB,GAAG,cAAc,CAAA;IAC3D,OAAO,kBAAkB,CAAA;AAC3B,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tarojs/taro-rn",
3
- "version": "3.7.0-canary.2",
3
+ "version": "3.7.0-canary.4",
4
4
  "description": "Taro RN framework",
5
5
  "main": "dist/index.js",
6
6
  "typings": "types/index.d.ts",
@@ -47,8 +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
- "react-native-syan-image-picker": "0.5.3",
51
- "@tarojs/runtime-rn": "3.7.0-canary.2"
50
+ "@tarojs/runtime-rn": "3.7.0-canary.4"
52
51
  },
53
52
  "devDependencies": {
54
53
  "@babel/core": "^7.14.5",
@@ -57,7 +56,7 @@
57
56
  "@testing-library/jest-native": "^5.4.2",
58
57
  "@testing-library/react-native": "^12.4.1",
59
58
  "@types/jest": "^27.4.1",
60
- "expo": "~50.0.0-preview.1",
59
+ "expo": "~50.0.0-preview.3",
61
60
  "fbjs-scripts": "^3.0.1",
62
61
  "jest": "^29.3.1",
63
62
  "jest-cli": "^29.3.1",
@@ -85,8 +84,7 @@
85
84
  "expo-location": "~16.5.0",
86
85
  "expo-sensors": "~12.9.0",
87
86
  "react-native-device-info": "~10.12.0",
88
- "react-native-safe-area-context": "~4.8.0",
89
- "react-native-syan-image-picker": "0.5.3"
87
+ "react-native-safe-area-context": "~4.8.0"
90
88
  },
91
89
  "scripts": {
92
90
  "assets": "cpy 'src/**/*.png' '!src/__tests__/*' dist",
@@ -1,157 +1,45 @@
1
- import SYImagePicker from 'react-native-syan-image-picker'
2
-
3
- import { shouldBeObject } from '../../utils'
1
+ import { chooseMedia, MEDIA_TYPE } from '../media'
4
2
  import { showActionSheet } from '../showActionSheet'
5
3
 
6
- const res = { errMsg: 'chooseImage:ok' }
7
- const defaultOptions = {
8
- count: 9,
9
- sizeType: ['original', 'compressed'],
10
- sourceType: ['album', 'camera']
11
- }
12
-
13
- function getRes(images) {
14
- const tempFilePaths: string[] = []
15
- const tempFiles: any[] = []
16
- images.forEach((item: any) => {
17
- tempFilePaths.push(item.uri)
18
- tempFiles.push({
19
- path: item.uri,
20
- size: item.size
21
- })
22
- })
23
- return { tempFilePaths, tempFiles }
24
- }
25
-
26
- function openCamera(options: Taro.chooseImage.Option): Promise<Taro.chooseImage.SuccessCallbackResult> {
27
- const { success, fail, complete } = options
28
- return new Promise((resolve, reject) => {
29
- SYImagePicker.openCamera({
30
- compressFocusAlpha: true
31
- }, (err, photo: any) => {
32
- if (err) {
33
- const res = {
34
- errMsg: err
35
- }
36
- fail?.(res)
37
- complete?.(res)
38
- reject(res)
39
- } else {
40
- try {
41
- const data = Object.assign({}, getRes(photo), res)
42
- success?.(data)
43
- complete?.(data)
44
- resolve(data)
45
- } catch (error) {
46
- // 错误
47
- reject(error)
48
- }
49
- }
50
- })
51
- })
52
- }
53
-
54
- // NOTE: 调用此函数会改变图片的像素尺寸
55
- function openPicker(options: Taro.chooseImage.Option): Promise<Taro.chooseImage.SuccessCallbackResult> {
56
- const { count: imageCount, sizeType = [],success, complete, fail } = options
57
- return new Promise((resolve, reject) => {
58
- // NOTE:react-native-syan-image-picker 暂不支持 Android 端压缩
59
- SYImagePicker.showImagePicker({
60
- compressFocusAlpha: true,
61
- imageCount,
62
- quality: sizeType[0] === 'compressed' ? 70 : 90,
63
- }, (err, photos: any) => {
64
- if (err) {
65
- const res = {
66
- errMsg: err
67
- }
68
- fail?.(res)
69
- complete?.(res)
70
- reject(res)
71
- } else {
72
- try {
73
- const data = Object.assign({}, getRes(photos), res)
74
- success?.(data)
75
- complete?.(data)
76
- resolve(data)
77
- } catch (error) {
78
- reject(error)
79
- }
80
- }
81
- })
82
- })
4
+ export function chooseImage(opts: Taro.chooseImage.Option): Promise<any> {
5
+ const { sourceType } = opts
6
+ switch (JSON.stringify(sourceType)) {
7
+ case '[\'camera\']':
8
+ case '["camera"]':
9
+ return chooseMedia({...opts, sourceType: ['camera']}, MEDIA_TYPE.IMAGES)
10
+ case '[\'album\']':
11
+ case '["album"]':
12
+ return chooseMedia({...opts, sourceType: ['album']}, MEDIA_TYPE.IMAGES)
13
+ default:
14
+ return showImagePicker(opts)
15
+ }
83
16
  }
84
17
 
85
- /**
86
- * @description Display the image picker.
87
- * @param options
88
- * @returns {Promise}
89
- */
90
- function showImagePicker(options: Taro.chooseImage.Option):Promise<Taro.chooseImage.SuccessCallbackResult> {
18
+ function showImagePicker(options: Taro.chooseImage.Option):any {
91
19
  const { fail, complete } = options
92
- return new Promise((resolve, reject) => {
20
+ return new Promise((resolve, reject) => {
93
21
  showActionSheet({
94
22
  itemList: ['拍照', '从手机相册选择'],
95
- success(res) {
96
- console.log(res.tapIndex)
23
+ success: function (res) {
97
24
  if (res.tapIndex === 0) {
98
- // 不添加 setTimeout 会有一定概率卡死,肯能是与 sibling.destroy() 冲突
99
- setTimeout(() => {
100
- openCamera(options).then(res => {
101
- resolve(res)
102
- }).catch(e => {
103
- fail?.({ errMsg: `chooseImage:${e.message}` })
104
- complete?.({ errMsg: `chooseImage:${e.message}` })
105
- reject(new Error(`chooseImage:${e.message}`))
106
- })
107
- }, 100)
25
+ resolve(chooseMedia({...options, sourceType: ['camera']}, MEDIA_TYPE.IMAGES))
108
26
  }
109
27
  if (res.tapIndex === 1) {
110
- setTimeout(() => {
111
- openPicker(options).then(res => {
112
- resolve(res)
113
- }).catch(e => {
114
- fail?.({ errMsg: `chooseImage:${e.message}` })
115
- complete?.({ errMsg: `chooseImage:${e.message}` })
116
- reject(new Error(`chooseImage:${e.message}`))
117
- })
118
- }, 100)
28
+ resolve(chooseMedia({...options, sourceType: ['album']}, MEDIA_TYPE.IMAGES))
119
29
  }
120
30
  },
121
- fail(res) {
122
- console.log('error: ', res.errMsg)
31
+ fail: function () {
32
+ const res = { errMsg: 'chooseImage:fail cancel' }
33
+ reject(res)
34
+ }
35
+ }).catch(err => {
36
+ console.log('error: ', err.errMsg)
37
+ if (/showActionSheet:fail cancel/.test(err.errMsg)) {
38
+ const res = { errMsg: 'chooseImage:fail cancel' }
39
+ fail?.(res)
40
+ complete?.(res)
41
+ reject(res)
123
42
  }
124
43
  })
125
44
  })
126
45
  }
127
-
128
- /**
129
- * @deprecated
130
- * @description 从本地相册选择图片或使用相机拍照。
131
- * sizeType ❌
132
- * @param options
133
- * @returns {Promise<*>}
134
- */
135
- export function chooseImage(options: Taro.chooseImage.Option): Promise<Taro.chooseImage.SuccessCallbackResult> {
136
- // options must be an Object
137
- const isObject = shouldBeObject(options)
138
- if (!isObject.res) {
139
- const res = { errMsg: `chooseImage${isObject.msg}` }
140
- console.error(res.errMsg)
141
- return Promise.reject(res)
142
- }
143
-
144
- options = Object.assign({}, defaultOptions, options)
145
- const { sourceType } = options
146
-
147
- switch (JSON.stringify(sourceType)) {
148
- case '[\'camera\']':
149
- case '["camera"]':
150
- return openCamera(options)
151
- case '[\'album\']':
152
- case '["album"]':
153
- return openPicker(options)
154
- default:
155
- return showImagePicker(options)
156
- }
157
- }
package/src/setup.ts CHANGED
@@ -19,7 +19,7 @@ jest.mock('react-native', () => {
19
19
  ReactNative.Image.getSize = jest.fn((_uri, success: any) => {
20
20
  setTimeout(() => success && success(320, 240))
21
21
  return Promise.resolve([320, 240])
22
- });
22
+ })
23
23
  return ReactNative
24
24
  })
25
25