@mpxjs/api-proxy 2.10.3 → 2.10.4-beta.10

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.
Files changed (29) hide show
  1. package/@types/index.d.ts +8 -0
  2. package/package.json +3 -4
  3. package/src/platform/api/action-sheet/rnActionSheet.jsx +87 -19
  4. package/src/platform/api/animation/index.ios.js +1 -1
  5. package/src/platform/api/clipboard-data/rnClipboard.js +45 -45
  6. package/src/platform/api/create-intersection-observer/rnIntersectionObserver.js +17 -19
  7. package/src/platform/api/image/index.ali.js +6 -3
  8. package/src/platform/api/image/index.ios.js +4 -1
  9. package/src/platform/api/image/index.js +4 -1
  10. package/src/platform/api/image/index.web.js +4 -1
  11. package/src/platform/api/location/index.ali.js +15 -3
  12. package/src/platform/api/location/index.ios.js +13 -1
  13. package/src/platform/api/location/index.js +13 -1
  14. package/src/platform/api/location/index.web.js +13 -1
  15. package/src/platform/api/modal/rnModal.jsx +9 -10
  16. package/src/platform/api/screen-brightness/index.ali.js +11 -3
  17. package/src/platform/api/screen-brightness/index.js +10 -1
  18. package/src/platform/api/screen-brightness/rnScreenBrightness.js +44 -35
  19. package/src/platform/api/set-navigation-bar/index.ios.js +6 -6
  20. package/src/platform/api/system/index.ali.js +36 -2
  21. package/src/platform/api/system/index.ios.js +1 -1
  22. package/src/platform/api/system/rnSystem.js +1 -2
  23. package/src/platform/api/toast/rnToast.jsx +20 -17
  24. package/src/platform/api/vibrate/index.ios.js +1 -0
  25. package/src/platform/index.js +4 -4
  26. package/LICENSE +0 -433
  27. package/src/platform/api/clipboard-data/index.ios.js +0 -1
  28. package/src/platform/api/screen-brightness/index.ios.js +0 -1
  29. /package/src/platform/api/animation/{animation.react.js → animation.ios.js} +0 -0
package/@types/index.d.ts CHANGED
@@ -83,6 +83,9 @@ export const switchTab: WechatMiniprogram.Wx['switchTab']
83
83
  export const scanCode: WechatMiniprogram.Wx['scanCode']
84
84
  export const setScreenBrightness: WechatMiniprogram.Wx['setScreenBrightness']
85
85
  export const getScreenBrightness: WechatMiniprogram.Wx['getScreenBrightness']
86
+ export const setVisualEffectOnCapture: WechatMiniprogram.Wx['setVisualEffectOnCapture']
87
+ export const onUserCaptureScreen: WechatMiniprogram.Wx['onUserCaptureScreen']
88
+ export const offUserCaptureScreen: WechatMiniprogram.Wx['offUserCaptureScreen']
86
89
  export const setNavigationBarTitle: WechatMiniprogram.Wx['setNavigationBarTitle']
87
90
  export const setNavigationBarColor: WechatMiniprogram.Wx['setNavigationBarColor']
88
91
  export const connectSocket: WechatMiniprogram.Wx['connectSocket']
@@ -118,12 +121,17 @@ export const enableAlertBeforeUnload: WechatMiniprogram.Wx['enableAlertBeforeUnl
118
121
  export const disableAlertBeforeUnload: WechatMiniprogram.Wx['disableAlertBeforeUnload']
119
122
  export const getMenuButtonBoundingClientRect: WechatMiniprogram.Wx['getMenuButtonBoundingClientRect']
120
123
  export const getImageInfo: WechatMiniprogram.Wx['getImageInfo']
124
+ export const chooseMedia: WechatMiniprogram.Wx['chooseMedia']
121
125
  export const vibrateShort: WechatMiniprogram.Wx['vibrateShort']
122
126
  export const vibrateLong: WechatMiniprogram.Wx['vibrateLong']
123
127
  export const getExtConfig: WechatMiniprogram.Wx['getExtConfig']
124
128
  export const getExtConfigSync: WechatMiniprogram.Wx['getExtConfigSync']
125
129
  export const openLocation: WechatMiniprogram.Wx['openLocation']
126
130
  export const chooseLocation: WechatMiniprogram.Wx['chooseLocation']
131
+ export const onLocationChange: WechatMiniprogram.Wx['onLocationChange']
132
+ export const offLocationChange: WechatMiniprogram.Wx['offLocationChange']
133
+ export const startLocationUpdate: WechatMiniprogram.Wx['startLocationUpdate']
134
+ export const stopLocationUpdate: WechatMiniprogram.Wx['stopLocationUpdate']
127
135
 
128
136
  declare const install: (...args: any) => any
129
137
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mpxjs/api-proxy",
3
- "version": "2.10.3",
3
+ "version": "2.10.4-beta.10",
4
4
  "description": "convert miniprogram API at each end",
5
5
  "module": "src/index.js",
6
6
  "types": "@types/index.d.ts",
@@ -37,7 +37,7 @@
37
37
  },
38
38
  "homepage": "https://github.com/didi/mpx#readme",
39
39
  "dependencies": {
40
- "@mpxjs/utils": "^2.10.2",
40
+ "@mpxjs/utils": "^2.10.4",
41
41
  "axios": "^1.7.3"
42
42
  },
43
43
  "peerDependencies": {
@@ -67,6 +67,5 @@
67
67
  "react-native-haptic-feedback": {
68
68
  "optional": true
69
69
  }
70
- },
71
- "gitHead": "043c9bc770ce9cc11f865bab67f46849ff573728"
70
+ }
72
71
  }
@@ -76,7 +76,7 @@ const styles = StyleSheet.create({
76
76
  }
77
77
  })
78
78
 
79
- function ActionSheet ({itemColor, height, success, fail, complete, alertText, itemList}) {
79
+ function ActionSheet ({ itemColor, height, success, fail, complete, alertText, itemList }) {
80
80
  const slide = useSharedValue(height)
81
81
  const fade = useSharedValue(0)
82
82
  const [selectedIndex, setSelectedIndex] = useState(null)
@@ -131,20 +131,79 @@ function ActionSheet ({itemColor, height, success, fail, complete, alertText, it
131
131
  return (
132
132
  <View style={styles.actionAction}>
133
133
  <Animated.View style={[styles.maskWrap, maskAnimatedStyles]}>
134
- <View activeOpacity={1} style={styles.actionActionMask} onTouchEnd={cancelAction}></View>
134
+ <View
135
+ activeOpacity={1}
136
+ style={styles.actionActionMask}
137
+ onTouchEnd={cancelAction}
138
+ ></View>
135
139
  </Animated.View>
136
- <Animated.View style={[styles.actionSheetContent, actionAnimatedStyles]}>
137
- { alertText ? <View style={ styles.itemStyle }><Text style={[styles.itemTextStyle, { color: '#666666' }]}>{alertText}</Text></View> : null }
138
- { itemList.map((item, index) => <View onTouchStart={() => startHandle(index)} onTouchEnd={() => selectAction(index)} key={index} style={ [styles.itemStyle, itemList.length -1 === index ? {
139
- borderBottomWidth: 6,
140
- borderBottomStyle: 'solid',
141
- borderBottomColor: '#f7f7f7'
142
- } : {}, selectedIndex === index ? {
143
- backgroundColor: '#ececec'
144
- } : {}] }><Text style={[styles.itemTextStyle, { color: itemColor }]}>{item}</Text></View>) }
145
- <View style={[styles.buttonStyle, selectedIndex === -1 ? {
146
- backgroundColor: '#ececec'
147
- } : {}]} onTouchStart={() => startHandle(-1)} onTouchEnd={cancelAction}><Text style={{ color: "#000000", fontSize: 18, lineHeight: 22, height: 22, width: "100%", textAlign: "center" }}>取消</Text></View>
140
+ <Animated.View
141
+ style={[styles.actionSheetContent, actionAnimatedStyles]}
142
+ >
143
+ {alertText
144
+ ? (
145
+ <View style={styles.itemStyle}>
146
+ <Text
147
+ style={[styles.itemTextStyle, { color: '#666666' }]}
148
+ >
149
+ {alertText}
150
+ </Text>
151
+ </View>
152
+ )
153
+ : null}
154
+ {itemList.map((item, index) => (
155
+ <View
156
+ onTouchStart={() => startHandle(index)}
157
+ onTouchEnd={() => selectAction(index)}
158
+ key={index}
159
+ style={[
160
+ styles.itemStyle,
161
+ itemList.length - 1 === index
162
+ ? {
163
+ borderBottomWidth: 6,
164
+ borderBottomStyle: 'solid',
165
+ borderBottomColor: '#f7f7f7'
166
+ }
167
+ : {},
168
+ selectedIndex === index
169
+ ? {
170
+ backgroundColor: '#ececec'
171
+ }
172
+ : {}
173
+ ]}
174
+ >
175
+ <Text
176
+ style={[styles.itemTextStyle, { color: itemColor }]}
177
+ >
178
+ {item}
179
+ </Text>
180
+ </View>
181
+ ))}
182
+ <View
183
+ style={[
184
+ styles.buttonStyle,
185
+ selectedIndex === -1
186
+ ? {
187
+ backgroundColor: '#ececec'
188
+ }
189
+ : {}
190
+ ]}
191
+ onTouchStart={() => startHandle(-1)}
192
+ onTouchEnd={cancelAction}
193
+ >
194
+ <Text
195
+ style={{
196
+ color: '#000000',
197
+ fontSize: 18,
198
+ lineHeight: 22,
199
+ height: 22,
200
+ width: '100%',
201
+ textAlign: 'center'
202
+ }}
203
+ >
204
+ 取消
205
+ </Text>
206
+ </View>
148
207
  </Animated.View>
149
208
  </View>
150
209
  )
@@ -169,11 +228,20 @@ function showActionSheet (options = {}) {
169
228
  return
170
229
  }
171
230
  const height = len * 53 + 46 + bottom + (alertText ? 52 : 0)
172
-
173
- const actionSheetKey = Portal.add(<ActionSheet itemColor={itemColor} height={height} success={success} fail={fail} complete={complete} alertText={alertText} itemList={itemList} />, id)
231
+
232
+ const actionSheetKey = Portal.add(
233
+ <ActionSheet
234
+ itemColor={itemColor}
235
+ height={height}
236
+ success={success}
237
+ fail={fail}
238
+ complete={complete}
239
+ alertText={alertText}
240
+ itemList={itemList}
241
+ />,
242
+ id
243
+ )
174
244
  actionSheetMap.set(id, actionSheetKey)
175
245
  }
176
246
 
177
- export {
178
- showActionSheet
179
- }
247
+ export { showActionSheet }
@@ -1,4 +1,4 @@
1
- import Animation from './animation.react'
1
+ import Animation from './animation'
2
2
 
3
3
  export const createAnimation = (option) => {
4
4
  return new Animation(option)
@@ -1,48 +1,48 @@
1
- import { successHandle, failHandle } from '../../../common/js'
2
- import { type } from '@mpxjs/utils'
3
- import { getStringAsync, setStringAsync } from 'expo-clipboard'
1
+ // import { successHandle, failHandle } from '../../../common/js'
2
+ // import { type } from '@mpxjs/utils'
3
+ // import { getStringAsync, setStringAsync } from 'expo-clipboard'
4
4
 
5
- const setClipboardData = function (options = {}) {
6
- const { data, success, fail, complete } = options
7
- if (!data || type(data) !== 'String') {
8
- const errStr = !data ? 'parameter.data should be String instead of Undefined;' : `parameter.data should be String instead of ${type(data)};`
9
- const result = {
10
- errno: 1001,
11
- errMsg: errStr
12
- }
13
- failHandle(result, fail, complete)
14
- return
15
- }
16
- setStringAsync(data).then(() => {
17
- const result = {
18
- errMsg: 'setClipboardData:ok'
19
- }
20
- successHandle(result, success, complete)
21
- }).catch((e) => {
22
- const result = {
23
- errMsg: `setClipboardData:fail ${e}`
24
- }
25
- failHandle(result, fail, complete)
26
- })
27
- }
5
+ // const setClipboardData = function (options = {}) {
6
+ // const { data, success, fail, complete } = options
7
+ // if (!data || type(data) !== 'String') {
8
+ // const errStr = !data ? 'parameter.data should be String instead of Undefined;' : `parameter.data should be String instead of ${type(data)};`
9
+ // const result = {
10
+ // errno: 1001,
11
+ // errMsg: errStr
12
+ // }
13
+ // failHandle(result, fail, complete)
14
+ // return
15
+ // }
16
+ // setStringAsync(data).then(() => {
17
+ // const result = {
18
+ // errMsg: 'setClipboardData:ok'
19
+ // }
20
+ // successHandle(result, success, complete)
21
+ // }).catch((e) => {
22
+ // const result = {
23
+ // errMsg: `setClipboardData:fail ${e}`
24
+ // }
25
+ // failHandle(result, fail, complete)
26
+ // })
27
+ // }
28
28
 
29
- const getClipboardData = function (options = {}) {
30
- const { success, fail, complete } = options
31
- getStringAsync().then((data) => {
32
- const result = {
33
- data,
34
- errMsg: 'getClipboardData:ok'
35
- }
36
- successHandle(result, success, complete)
37
- }).catch((e) => {
38
- const result = {
39
- errMsg: `getClipboardData:fail ${e}`
40
- }
41
- failHandle(result, fail, complete)
42
- })
43
- }
29
+ // const getClipboardData = function (options = {}) {
30
+ // const { success, fail, complete } = options
31
+ // getStringAsync().then((data) => {
32
+ // const result = {
33
+ // data,
34
+ // errMsg: 'getClipboardData:ok'
35
+ // }
36
+ // successHandle(result, success, complete)
37
+ // }).catch((e) => {
38
+ // const result = {
39
+ // errMsg: `getClipboardData:fail ${e}`
40
+ // }
41
+ // failHandle(result, fail, complete)
42
+ // })
43
+ // }
44
44
 
45
- export {
46
- setClipboardData,
47
- getClipboardData
48
- }
45
+ // export {
46
+ // setClipboardData,
47
+ // getClipboardData
48
+ // }
@@ -95,22 +95,25 @@ class RNIntersectionObserver {
95
95
  const navigationLayout = navigation.layout || {
96
96
  x: 0,
97
97
  y: 0,
98
+ top: 0,
99
+ left: 0,
98
100
  width: screen.width,
99
101
  height: screen.height
100
102
  }
101
103
 
102
104
  const windowRect = {
103
- top: navigationLayout.y - this.margins.top,
105
+ top: navigationLayout.top - this.margins.top,
104
106
  left: 0 - this.margins.left,
105
107
  right: navigationLayout.width + this.margins.right,
106
- bottom: navigationLayout.y + navigationLayout.height + this.margins.bottom
108
+ bottom: navigationLayout.top + navigationLayout.height + this.margins.bottom
107
109
  }
108
-
109
110
  this.windowRect = windowRect
110
111
  return this.windowRect
111
112
  }
112
113
 
113
114
  _getReferenceRect (targetRef) {
115
+ const navigation = getFocusedNavigation() || {}
116
+ const layout = navigation.layout || {}
114
117
  const targetRefs = isArray(targetRef) ? targetRef : [targetRef]
115
118
  const targetPromiseQueue = []
116
119
  targetRefs.forEach((targetRefItem) => {
@@ -128,11 +131,12 @@ class RNIntersectionObserver {
128
131
  targetPromiseQueue.push(new Promise((resolve) => {
129
132
  target.measureInWindow(
130
133
  (x, y, width, height) => {
134
+ // 安卓measureInWindow的参考值在android下为statubar的左下角,因此top需要调整一下
131
135
  const boundingClientRect = {
132
136
  left: x,
133
- top: y,
137
+ top: y + layout.statusBarHeight || 0,
134
138
  right: x + width,
135
- bottom: y + height,
139
+ bottom: y + height + layout.statusBarHeight || 0,
136
140
  width: width,
137
141
  height: height
138
142
  }
@@ -153,19 +157,16 @@ class RNIntersectionObserver {
153
157
  return Math.min(Math.max(start, value), end)
154
158
  }
155
159
 
156
- _isInsectedFn (intersectionRatio, previousIntersectionRatio, thresholds) {
157
- // console.log('nowintersectionRatio, previousIntersectionRatio', [intersectionRatio, previousIntersectionRatio])
158
- let nowIndex = -1
159
- let previousIndex = -1
160
+ _getRatioIndex (ratio, thresholds = []) {
161
+ if (ratio === 0 && thresholds.includes(0)) return -1
162
+ if (ratio === 1 && thresholds.includes(1)) return thresholds.length
163
+ let returnIndex = -1
160
164
  thresholds.forEach((item, index) => {
161
- if (intersectionRatio >= item) {
162
- nowIndex = index
163
- }
164
- if (previousIntersectionRatio >= item) {
165
- previousIndex = index
165
+ if (ratio >= item) {
166
+ returnIndex = index
166
167
  }
167
168
  })
168
- return !(nowIndex === previousIndex)
169
+ return returnIndex
169
170
  }
170
171
 
171
172
  // 计算相交区域
@@ -180,10 +181,8 @@ class RNIntersectionObserver {
180
181
  const targetArea = (observeRect.bottom - observeRect.top) * (observeRect.right - observeRect.left)
181
182
  const visibleArea = (visibleRect.bottom - visibleRect.top) * (visibleRect.right - visibleRect.left)
182
183
  const intersectionRatio = targetArea ? visibleArea / targetArea : 0
183
-
184
- const isInsected = isInit ? intersectionRatio > this.initialRatio : this._isInsectedFn(intersectionRatio, this.previousIntersectionRatio[observeIndex], this.thresholds)
184
+ const isInsected = isInit ? intersectionRatio > this.initialRatio : !(this._getRatioIndex(intersectionRatio, this.thresholds) === this._getRatioIndex(this.previousIntersectionRatio[observeIndex], this.thresholds))
185
185
  this.previousIntersectionRatio[observeIndex] = intersectionRatio
186
-
187
186
  return {
188
187
  intersectionRatio,
189
188
  intersectionRect: {
@@ -217,7 +216,6 @@ class RNIntersectionObserver {
217
216
  relativeRect,
218
217
  isInit
219
218
  })
220
- // 初次调用的
221
219
  if (isInsected) {
222
220
  this.callback({
223
221
  // index: index,
@@ -1,4 +1,4 @@
1
- import { ENV_OBJ, changeOpts, handleSuccess } from '../../../common/js'
1
+ import { ENV_OBJ, changeOpts, handleSuccess, envError } from '../../../common/js'
2
2
 
3
3
  function previewImage (options = {}) {
4
4
  const opts = changeOpts(options)
@@ -30,10 +30,13 @@ function compressImage (options = {}) {
30
30
  return ENV_OBJ.compressImage(opts)
31
31
  }
32
32
 
33
- const getImageInfo = ENV_OBJ.getImageInfo
33
+ const getImageInfo = ENV_OBJ.getImageInfo || envError('getImageInfo')
34
+
35
+ const chooseMedia = envError('chooseMedia')
34
36
 
35
37
  export {
36
38
  previewImage,
37
39
  compressImage,
38
- getImageInfo
40
+ getImageInfo,
41
+ chooseMedia
39
42
  }
@@ -38,8 +38,11 @@ const getImageInfo = function (options = {}) {
38
38
  })
39
39
  }
40
40
 
41
+ const chooseMedia = envError('chooseMedia')
42
+
41
43
  export {
42
44
  previewImage,
43
45
  compressImage,
44
- getImageInfo
46
+ getImageInfo,
47
+ chooseMedia
45
48
  }
@@ -6,8 +6,11 @@ const compressImage = ENV_OBJ.compressImage || envError('compressImage')
6
6
 
7
7
  const getImageInfo = ENV_OBJ.getImageInfo || envError('getImageInfo')
8
8
 
9
+ const chooseMedia = ENV_OBJ.chooseMedia || envError('chooseMedia')
10
+
9
11
  export {
10
12
  previewImage,
11
13
  compressImage,
12
- getImageInfo
14
+ getImageInfo,
15
+ chooseMedia
13
16
  }
@@ -60,8 +60,11 @@ const getImageInfo = function (options = {}) {
60
60
  }
61
61
  }
62
62
 
63
+ const chooseMedia = envError('chooseMedia')
64
+
63
65
  export {
64
66
  previewImage,
65
67
  compressImage,
66
- getImageInfo
68
+ getImageInfo,
69
+ chooseMedia
67
70
  }
@@ -1,4 +1,4 @@
1
- import { ENV_OBJ, changeOpts, handleSuccess, defineUnsupportedProps } from '../../../common/js'
1
+ import { ENV_OBJ, changeOpts, handleSuccess, defineUnsupportedProps, envError } from '../../../common/js'
2
2
 
3
3
  function getLocation (options = {}) {
4
4
  const opts = Object.assign(options, {
@@ -22,10 +22,22 @@ function openLocation (options = {}) {
22
22
  return ENV_OBJ.openLocation(opts)
23
23
  }
24
24
 
25
- const chooseLocation = ENV_OBJ.chooseLocation
25
+ const chooseLocation = ENV_OBJ.chooseLocation || envError('chooseLocation')
26
+
27
+ const onLocationChange = envError('onLocationChange')
28
+
29
+ const offLocationChange = envError('offLocationChange')
30
+
31
+ const startLocationUpdate = envError('startLocationUpdate')
32
+
33
+ const stopLocationUpdate = envError('stopLocationUpdate')
26
34
 
27
35
  export {
28
36
  getLocation,
29
37
  openLocation,
30
- chooseLocation
38
+ chooseLocation,
39
+ onLocationChange,
40
+ offLocationChange,
41
+ startLocationUpdate,
42
+ stopLocationUpdate
31
43
  }
@@ -24,8 +24,20 @@ const openLocation = envError('openLocation')
24
24
 
25
25
  const chooseLocation = envError('chooseLocation')
26
26
 
27
+ const onLocationChange = envError('onLocationChange')
28
+
29
+ const offLocationChange = envError('offLocationChange')
30
+
31
+ const startLocationUpdate = envError('startLocationUpdate')
32
+
33
+ const stopLocationUpdate = envError('stopLocationUpdate')
34
+
27
35
  export {
28
36
  getLocation,
29
37
  openLocation,
30
- chooseLocation
38
+ chooseLocation,
39
+ onLocationChange,
40
+ offLocationChange,
41
+ startLocationUpdate,
42
+ stopLocationUpdate
31
43
  }
@@ -6,8 +6,20 @@ const openLocation = ENV_OBJ.openLocation || envError('openLocation')
6
6
 
7
7
  const chooseLocation = ENV_OBJ.chooseLocation || envError('chooseLocation')
8
8
 
9
+ const onLocationChange = ENV_OBJ.onLocationChange || envError('onLocationChange')
10
+
11
+ const offLocationChange = ENV_OBJ.offLocationChange || envError('offLocationChange')
12
+
13
+ const startLocationUpdate = ENV_OBJ.startLocationUpdate || envError('startLocationUpdate')
14
+
15
+ const stopLocationUpdate = ENV_OBJ.stopLocationUpdate || envError('stopLocationUpdate')
16
+
9
17
  export {
10
18
  getLocation,
11
19
  openLocation,
12
- chooseLocation
20
+ chooseLocation,
21
+ onLocationChange,
22
+ offLocationChange,
23
+ startLocationUpdate,
24
+ stopLocationUpdate
13
25
  }
@@ -29,8 +29,20 @@ const openLocation = envError('openLocation')
29
29
 
30
30
  const chooseLocation = envError('chooseLocation')
31
31
 
32
+ const onLocationChange = envError('onLocationChange')
33
+
34
+ const offLocationChange = envError('offLocationChange')
35
+
36
+ const startLocationUpdate = envError('startLocationUpdate')
37
+
38
+ const stopLocationUpdate = envError('stopLocationUpdate')
39
+
32
40
  export {
33
41
  getLocation,
34
42
  openLocation,
35
- chooseLocation
43
+ chooseLocation,
44
+ onLocationChange,
45
+ offLocationChange,
46
+ startLocationUpdate,
47
+ stopLocationUpdate
36
48
  }
@@ -88,7 +88,7 @@ const showModal = function (options = {}) {
88
88
  flex: 1,
89
89
  textAlign: 'center',
90
90
  paddingTop: width * 0.04,
91
- paddingBottom: width * 0.04,
91
+ paddingBottom: width * 0.04
92
92
  },
93
93
  modalButton: {
94
94
  width: '100%',
@@ -98,14 +98,13 @@ const showModal = function (options = {}) {
98
98
  cancelStyle: {
99
99
  borderRightWidth: StyleSheet.hairlineWidth,
100
100
  borderRightColor: 'rgba(0,0,0,0.2)',
101
- borderStyle: 'solid',
101
+ borderStyle: 'solid'
102
102
  }
103
103
  })
104
- let ModalView
105
- let modalTitle = []
106
- let modalContent = []
107
- let editableContent = []
108
- let modalButton = [{
104
+ const modalTitle = []
105
+ const modalContent = []
106
+ const editableContent = []
107
+ const modalButton = [{
109
108
  text: confirmText,
110
109
  type: 'confirm',
111
110
  color: confirmColor
@@ -116,7 +115,7 @@ const showModal = function (options = {}) {
116
115
  }
117
116
  const closeModal = function (buttonInfo) {
118
117
  const modalKey = getCurrentModalKey()
119
- if(modalKey) {
118
+ if (modalKey) {
120
119
  Portal.remove(modalKey)
121
120
  }
122
121
  const result = {
@@ -153,7 +152,7 @@ const showModal = function (options = {}) {
153
152
  color: cancelColor
154
153
  })
155
154
  }
156
- ModalView = <View style={styles.modalTask}>
155
+ const ModalView = <View style={styles.modalTask}>
157
156
  <View style={styles.modalContent}>
158
157
  {modalTitle.map((item, index) => <View key={index}><Text style={styles.modalTitleText}>{item}</Text></View>)}
159
158
  {modalContent.map((item, index) => <ScrollView key={index} style={styles.contentBox}><Text style={styles.modalContentText}>{item}</Text></ScrollView>)}
@@ -171,7 +170,7 @@ const showModal = function (options = {}) {
171
170
  paddingRight: 10
172
171
  }} onChangeText={text => onChangeText(text)} defaultValue={content}></TextInput></View>)}
173
172
  <View style={styles.modalBtnBox}>
174
- {modalButton.map((item, index) => <TouchableOpacity key={index} style={[ styles.modalBtn, item.style ]} onPress={() => closeModal(item)}><Text style={[styles.modalButton, { color: item.color }]}>{item.text}</Text></TouchableOpacity>)}
173
+ {modalButton.map((item, index) => <TouchableOpacity key={index} style={[styles.modalBtn, item.style]} onPress={() => closeModal(item)}><Text style={[styles.modalButton, { color: item.color }]}>{item.text}</Text></TouchableOpacity>)}
175
174
  </View>
176
175
  </View>
177
176
  </View>
@@ -1,4 +1,4 @@
1
- import { ENV_OBJ, changeOpts, handleSuccess } from '../../../common/js'
1
+ import { ENV_OBJ, changeOpts, handleSuccess, envError } from '../../../common/js'
2
2
 
3
3
  function setScreenBrightness (options = {}) {
4
4
  const opts = changeOpts(options, {
@@ -16,11 +16,19 @@ function getScreenBrightness (options = {}) {
16
16
  handleSuccess(opts, res => {
17
17
  return changeOpts(res, { brightness: 'value' }, { errMsg: 'getScreenBrightness:ok' })
18
18
  })
19
-
20
19
  return ENV_OBJ.getScreenBrightness(opts)
21
20
  }
22
21
 
22
+ const setVisualEffectOnCapture = ENV_OBJ.setVisualEffectOnCapture || envError('setVisualEffectOnCapture')
23
+
24
+ const onUserCaptureScreen = ENV_OBJ.onUserCaptureScreen || envError('onUserCaptureScreen')
25
+
26
+ const offUserCaptureScreen = ENV_OBJ.offUserCaptureScreen || envError('offUserCaptureScreen')
27
+
23
28
  export {
24
29
  setScreenBrightness,
25
- getScreenBrightness
30
+ getScreenBrightness,
31
+ setVisualEffectOnCapture,
32
+ onUserCaptureScreen,
33
+ offUserCaptureScreen
26
34
  }
@@ -4,7 +4,16 @@ const setScreenBrightness = ENV_OBJ.setScreenBrightness || envError('setScreenBr
4
4
 
5
5
  const getScreenBrightness = ENV_OBJ.getScreenBrightness || envError('getScreenBrightness')
6
6
 
7
+ const setVisualEffectOnCapture = ENV_OBJ.setVisualEffectOnCapture || envError('setVisualEffectOnCapture')
8
+
9
+ const onUserCaptureScreen = ENV_OBJ.onUserCaptureScreen || envError('onUserCaptureScreen')
10
+
11
+ const offUserCaptureScreen = ENV_OBJ.offUserCaptureScreen || envError('offUserCaptureScreen')
12
+
7
13
  export {
8
14
  setScreenBrightness,
9
- getScreenBrightness
15
+ getScreenBrightness,
16
+ setVisualEffectOnCapture,
17
+ onUserCaptureScreen,
18
+ offUserCaptureScreen
10
19
  }