@unif/react-native-hms-scan 2.1.0 → 3.0.0
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/lib/module/Scanner/DeniedOverlay.js +3 -2
- package/lib/module/Scanner/DeniedOverlay.js.map +1 -1
- package/lib/module/Scanner/ResultFail.js +35 -20
- package/lib/module/Scanner/ResultFail.js.map +1 -1
- package/lib/module/Scanner/ResultFocus/ResultFocus.js +8 -9
- package/lib/module/Scanner/ResultFocus/ResultFocus.js.map +1 -1
- package/lib/module/Scanner/ResultFocus/styles.js +17 -1
- package/lib/module/Scanner/ResultFocus/styles.js.map +1 -1
- package/lib/module/Scanner/ScanErrorOverlay.js +2 -1
- package/lib/module/Scanner/ScanErrorOverlay.js.map +1 -1
- package/lib/module/Scanner/ScanToolbar.js +26 -19
- package/lib/module/Scanner/ScanToolbar.js.map +1 -1
- package/lib/module/Scanner/Viewfinder.js +3 -3
- package/lib/module/Scanner/Viewfinder.js.map +1 -1
- package/lib/module/Scanner/scanChrome.js +0 -6
- package/lib/module/Scanner/scanChrome.js.map +1 -1
- package/lib/typescript/src/Scanner/DeniedOverlay.d.ts.map +1 -1
- package/lib/typescript/src/Scanner/ResultFail.d.ts.map +1 -1
- package/lib/typescript/src/Scanner/ResultFocus/ResultFocus.d.ts.map +1 -1
- package/lib/typescript/src/Scanner/ResultFocus/styles.d.ts +25 -2
- package/lib/typescript/src/Scanner/ResultFocus/styles.d.ts.map +1 -1
- package/lib/typescript/src/Scanner/ScanErrorOverlay.d.ts.map +1 -1
- package/lib/typescript/src/Scanner/ScanToolbar.d.ts.map +1 -1
- package/lib/typescript/src/Scanner/Viewfinder.d.ts.map +1 -1
- package/lib/typescript/src/Scanner/scanChrome.d.ts +0 -6
- package/lib/typescript/src/Scanner/scanChrome.d.ts.map +1 -1
- package/package.json +5 -3
- package/src/Scanner/DeniedOverlay.tsx +6 -2
- package/src/Scanner/ResultFail.tsx +24 -14
- package/src/Scanner/ResultFocus/ResultFocus.tsx +5 -11
- package/src/Scanner/ResultFocus/styles.ts +11 -1
- package/src/Scanner/ScanErrorOverlay.tsx +5 -2
- package/src/Scanner/ScanToolbar.tsx +36 -18
- package/src/Scanner/Viewfinder.tsx +34 -7
- package/src/Scanner/scanChrome.ts +0 -6
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
import { PermissionDeniedOutlined, SettingsOutlined } from '@unif/react-native-icons';
|
|
3
4
|
import { StyleSheet, View } from 'react-native';
|
|
4
5
|
import { Button, Empty, useThemedStyles, r } from '@unif/react-native-design';
|
|
5
6
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
@@ -12,7 +13,7 @@ export function DeniedOverlay({
|
|
|
12
13
|
return /*#__PURE__*/_jsxs(View, {
|
|
13
14
|
style: s.overlay,
|
|
14
15
|
children: [/*#__PURE__*/_jsx(Empty, {
|
|
15
|
-
icon:
|
|
16
|
+
icon: PermissionDeniedOutlined,
|
|
16
17
|
title: "\u9700\u8981\u76F8\u673A\u6743\u9650",
|
|
17
18
|
desc: "\u5F00\u542F\u76F8\u673A\u540E\uFF0C\u624D\u80FD\u626B\u63CF\u6761\u7801\u4E0E\u4E8C\u7EF4\u7801\u3002\u8BF7\u524D\u5F80\u7CFB\u7EDF\u8BBE\u7F6E\u6388\u6743\u3002"
|
|
18
19
|
}), /*#__PURE__*/_jsxs(View, {
|
|
@@ -25,7 +26,7 @@ export function DeniedOverlay({
|
|
|
25
26
|
}), /*#__PURE__*/_jsx(Button, {
|
|
26
27
|
label: "\u53BB\u8BBE\u7F6E\u5F00\u542F",
|
|
27
28
|
variant: "primary",
|
|
28
|
-
leftIcon:
|
|
29
|
+
leftIcon: SettingsOutlined,
|
|
29
30
|
block: true,
|
|
30
31
|
onPress: onSettings
|
|
31
32
|
})]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["StyleSheet","View","Button","Empty","useThemedStyles","r","jsx","_jsx","jsxs","_jsxs","DeniedOverlay","onClose","onSettings","s","makeStyles","style","overlay","children","icon","title","desc","styles","row","label","variant","block","onPress","leftIcon","create","flexDirection","columnGap","marginTop","c","position","top","left","right","bottom","zIndex","backgroundColor","background","alignItems","justifyContent","paddingHorizontal","rowGap"],"sourceRoot":"../../../src","sources":["Scanner/DeniedOverlay.tsx"],"mappings":";;AAAA,
|
|
1
|
+
{"version":3,"names":["PermissionDeniedOutlined","SettingsOutlined","StyleSheet","View","Button","Empty","useThemedStyles","r","jsx","_jsx","jsxs","_jsxs","DeniedOverlay","onClose","onSettings","s","makeStyles","style","overlay","children","icon","title","desc","styles","row","label","variant","block","onPress","leftIcon","create","flexDirection","columnGap","marginTop","c","position","top","left","right","bottom","zIndex","backgroundColor","background","alignItems","justifyContent","paddingHorizontal","rowGap"],"sourceRoot":"../../../src","sources":["Scanner/DeniedOverlay.tsx"],"mappings":";;AAAA,SACEA,wBAAwB,EACxBC,gBAAgB,QACX,0BAA0B;AACjC,SAASC,UAAU,EAAEC,IAAI,QAAQ,cAAc;AAC/C,SACEC,MAAM,EACNC,KAAK,EACLC,eAAe,EACfC,CAAC,QAEI,2BAA2B;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAOnC;AACA,OAAO,SAASC,aAAaA,CAAC;EAAEC,OAAO;EAAEC;AAA+B,CAAC,EAAE;EACzE,MAAMC,CAAC,GAAGT,eAAe,CAACU,UAAU,CAAC;EACrC,oBACEL,KAAA,CAACR,IAAI;IAACc,KAAK,EAAEF,CAAC,CAACG,OAAQ;IAAAC,QAAA,gBACrBV,IAAA,CAACJ,KAAK;MACJe,IAAI,EAAEpB,wBAAyB;MAC/BqB,KAAK,EAAC,sCAAQ;MACdC,IAAI,EAAC;IAA6B,CACnC,CAAC,eAGFX,KAAA,CAACR,IAAI;MAACc,KAAK,EAAEM,MAAM,CAACC,GAAI;MAAAL,QAAA,GACrBN,OAAO,iBACNJ,IAAA,CAACL,MAAM;QAACqB,KAAK,EAAC,cAAI;QAACC,OAAO,EAAC,OAAO;QAACC,KAAK;QAACC,OAAO,EAAEf;MAAQ,CAAE,CAC7D,eACDJ,IAAA,CAACL,MAAM;QACLqB,KAAK,EAAC,gCAAO;QACbC,OAAO,EAAC,SAAS;QACjBG,QAAQ,EAAE5B,gBAAiB;QAC3B0B,KAAK;QACLC,OAAO,EAAEd;MAAW,CACrB,CAAC;IAAA,CACE,CAAC;EAAA,CACH,CAAC;AAEX;AAEA,MAAMS,MAAM,GAAGrB,UAAU,CAAC4B,MAAM,CAAC;EAC/BN,GAAG,EAAE;IAAEO,aAAa,EAAE,KAAK;IAAEC,SAAS,EAAEzB,CAAC,CAAC,EAAE,CAAC;IAAE0B,SAAS,EAAE1B,CAAC,CAAC,CAAC;EAAE;AACjE,CAAC,CAAC;AAEF,MAAMS,UAAU,GAAIkB,CAAc,IAChChC,UAAU,CAAC4B,MAAM,CAAC;EAChBZ,OAAO,EAAE;IACPiB,QAAQ,EAAE,UAAU;IACpBC,GAAG,EAAE,CAAC;IACNC,IAAI,EAAE,CAAC;IACPC,KAAK,EAAE,CAAC;IACRC,MAAM,EAAE,CAAC;IACTC,MAAM,EAAE,EAAE;IACVC,eAAe,EAAEP,CAAC,CAACQ,UAAU;IAC7BC,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE,QAAQ;IACxBC,iBAAiB,EAAEtC,CAAC,CAAC,EAAE,CAAC;IACxBuC,MAAM,EAAEvC,CAAC,CAAC,CAAC;EACb;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
import { ErrorAlertOutlined } from '@unif/react-native-icons';
|
|
3
4
|
import { useEffect, useRef } from 'react';
|
|
4
5
|
import { Animated, StyleSheet, View } from 'react-native';
|
|
5
|
-
import { Button, Empty, useThemedStyles, r } from '@unif/react-native-design';
|
|
6
|
+
import { Button, Empty, GlassLayer, useThemedStyles, r } from '@unif/react-native-design';
|
|
6
7
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
7
8
|
// 未识别失败的底部弹层:design 的 Empty(error-alert)+ Button(重扫)。
|
|
8
9
|
// 聚焦款不加背景遮罩,与浮层确认卡保持一致。
|
|
@@ -20,7 +21,7 @@ export function ResultFail({
|
|
|
20
21
|
useNativeDriver: true
|
|
21
22
|
}).start();
|
|
22
23
|
}, [anim]);
|
|
23
|
-
return /*#__PURE__*/
|
|
24
|
+
return /*#__PURE__*/_jsx(Animated.View, {
|
|
24
25
|
style: [s.sheet, {
|
|
25
26
|
transform: [{
|
|
26
27
|
translateY: anim.interpolate({
|
|
@@ -29,26 +30,42 @@ export function ResultFail({
|
|
|
29
30
|
})
|
|
30
31
|
}]
|
|
31
32
|
}],
|
|
32
|
-
children:
|
|
33
|
-
style:
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
33
|
+
children: /*#__PURE__*/_jsxs(View, {
|
|
34
|
+
style: styles.surface,
|
|
35
|
+
children: [/*#__PURE__*/_jsx(GlassLayer, {
|
|
36
|
+
style: styles.glass,
|
|
37
|
+
testID: "scan-failure-glass"
|
|
38
|
+
}), /*#__PURE__*/_jsx(View, {
|
|
39
|
+
style: s.grabber
|
|
40
|
+
}), /*#__PURE__*/_jsxs(View, {
|
|
41
|
+
style: [styles.inner, {
|
|
42
|
+
paddingBottom: bottomInset + r(14)
|
|
43
|
+
}],
|
|
44
|
+
children: [/*#__PURE__*/_jsx(Empty, {
|
|
45
|
+
icon: ErrorAlertOutlined,
|
|
46
|
+
title: failed ? '图片识别失败' : '未识别到条码',
|
|
47
|
+
desc: failed ? '无法读取或解码图片,请重试。' : '请将条码完整置于框内、保持平整并对准光线后重试。'
|
|
48
|
+
}), /*#__PURE__*/_jsx(Button, {
|
|
49
|
+
label: "\u91CD\u626B",
|
|
50
|
+
variant: "primary",
|
|
51
|
+
block: true,
|
|
52
|
+
onPress: onRescan
|
|
53
|
+
})]
|
|
47
54
|
})]
|
|
48
|
-
})
|
|
55
|
+
})
|
|
49
56
|
});
|
|
50
57
|
}
|
|
51
58
|
const styles = StyleSheet.create({
|
|
59
|
+
glass: {
|
|
60
|
+
borderTopLeftRadius: r(20),
|
|
61
|
+
borderTopRightRadius: r(20)
|
|
62
|
+
},
|
|
63
|
+
surface: {
|
|
64
|
+
borderTopLeftRadius: r(20),
|
|
65
|
+
borderTopRightRadius: r(20),
|
|
66
|
+
paddingTop: r(10),
|
|
67
|
+
overflow: 'hidden'
|
|
68
|
+
},
|
|
52
69
|
inner: {
|
|
53
70
|
paddingHorizontal: r(18),
|
|
54
71
|
paddingTop: r(8),
|
|
@@ -62,10 +79,8 @@ const makeStyles = (c, shadow) => StyleSheet.create({
|
|
|
62
79
|
right: 0,
|
|
63
80
|
bottom: 0,
|
|
64
81
|
zIndex: 50,
|
|
65
|
-
backgroundColor: c.surface,
|
|
66
82
|
borderTopLeftRadius: r(20),
|
|
67
83
|
borderTopRightRadius: r(20),
|
|
68
|
-
paddingTop: r(10),
|
|
69
84
|
...shadow.floating
|
|
70
85
|
},
|
|
71
86
|
grabber: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useEffect","useRef","Animated","StyleSheet","View","Button","Empty","useThemedStyles","r","jsx","_jsx","jsxs","_jsxs","ResultFail","bottomInset","failed","onRescan","s","makeStyles","anim","Value","current","timing","toValue","duration","useNativeDriver","start","style","sheet","transform","translateY","interpolate","inputRange","outputRange","children","
|
|
1
|
+
{"version":3,"names":["ErrorAlertOutlined","useEffect","useRef","Animated","StyleSheet","View","Button","Empty","GlassLayer","useThemedStyles","r","jsx","_jsx","jsxs","_jsxs","ResultFail","bottomInset","failed","onRescan","s","makeStyles","anim","Value","current","timing","toValue","duration","useNativeDriver","start","style","sheet","transform","translateY","interpolate","inputRange","outputRange","children","styles","surface","glass","testID","grabber","inner","paddingBottom","icon","title","desc","label","variant","block","onPress","create","borderTopLeftRadius","borderTopRightRadius","paddingTop","overflow","paddingHorizontal","rowGap","c","shadow","position","left","right","bottom","zIndex","floating","width","height","borderRadius","backgroundColor","surfaceContainerHighest","alignSelf"],"sourceRoot":"../../../src","sources":["Scanner/ResultFail.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import { ScrollView, Text, View } from 'react-native';
|
|
4
|
-
import { Button,
|
|
4
|
+
import { Button, GlassLayer, useThemedStyles, r } from '@unif/react-native-design';
|
|
5
5
|
import { styles, makeStyles } from "./styles.js";
|
|
6
6
|
|
|
7
7
|
/** A raw result is selected here; interpreting it belongs to the consumer. */
|
|
@@ -12,18 +12,17 @@ export function ResultFocus({
|
|
|
12
12
|
onRescan,
|
|
13
13
|
onConfirm
|
|
14
14
|
}) {
|
|
15
|
-
const colors = useColors();
|
|
16
15
|
const themed = useThemedStyles(makeStyles);
|
|
17
16
|
return /*#__PURE__*/_jsx(View, {
|
|
18
|
-
style: [styles.wrap, {
|
|
17
|
+
style: [styles.wrap, themed.shadow, {
|
|
19
18
|
bottom: bottomInset + r(18)
|
|
20
19
|
}],
|
|
21
|
-
children: /*#__PURE__*/_jsxs(
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
20
|
+
children: /*#__PURE__*/_jsxs(View, {
|
|
21
|
+
style: [styles.surface, themed.border],
|
|
22
|
+
children: [/*#__PURE__*/_jsx(GlassLayer, {
|
|
23
|
+
style: styles.glass,
|
|
24
|
+
testID: "scan-result-glass"
|
|
25
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
27
26
|
style: themed.badge,
|
|
28
27
|
children: "\u5DF2\u8BC6\u522B"
|
|
29
28
|
}), /*#__PURE__*/_jsx(Text, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ScrollView","Text","View","Button","
|
|
1
|
+
{"version":3,"names":["ScrollView","Text","View","Button","GlassLayer","useThemedStyles","r","styles","makeStyles","jsx","_jsx","jsxs","_jsxs","ResultFocus","result","bottomInset","onRescan","onConfirm","themed","style","wrap","shadow","bottom","children","surface","border","glass","testID","badge","format","content","selectable","value","actions","label","variant","block","onPress"],"sourceRoot":"../../../../src","sources":["Scanner/ResultFocus/ResultFocus.tsx"],"mappings":";;AAAA,SAASA,UAAU,EAAEC,IAAI,EAAEC,IAAI,QAAQ,cAAc;AACrD,SACEC,MAAM,EACNC,UAAU,EACVC,eAAe,EACfC,CAAC,QACI,2BAA2B;AAElC,SAASC,MAAM,EAAEC,UAAU,QAAQ,aAAU;;AAE7C;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AACA,OAAO,SAASC,WAAWA,CAAC;EAC1BC,MAAM;EACNC,WAAW;EACXC,QAAQ;EACRC;AACgB,CAAC,EAAE;EACnB,MAAMC,MAAM,GAAGb,eAAe,CAACG,UAAU,CAAC;EAC1C,oBACEE,IAAA,CAACR,IAAI;IAACiB,KAAK,EAAE,CAACZ,MAAM,CAACa,IAAI,EAAEF,MAAM,CAACG,MAAM,EAAE;MAAEC,MAAM,EAAEP,WAAW,GAAGT,CAAC,CAAC,EAAE;IAAE,CAAC,CAAE;IAAAiB,QAAA,eACzEX,KAAA,CAACV,IAAI;MAACiB,KAAK,EAAE,CAACZ,MAAM,CAACiB,OAAO,EAAEN,MAAM,CAACO,MAAM,CAAE;MAAAF,QAAA,gBAC3Cb,IAAA,CAACN,UAAU;QAACe,KAAK,EAAEZ,MAAM,CAACmB,KAAM;QAACC,MAAM,EAAC;MAAmB,CAAE,CAAC,eAC9DjB,IAAA,CAACT,IAAI;QAACkB,KAAK,EAAED,MAAM,CAACU,KAAM;QAAAL,QAAA,EAAC;MAAG,CAAM,CAAC,eACrCb,IAAA,CAACT,IAAI;QAACkB,KAAK,EAAED,MAAM,CAACW,MAAO;QAAAN,QAAA,EAAET,MAAM,CAACe;MAAM,CAAO,CAAC,eAClDnB,IAAA,CAACV,UAAU;QAACmB,KAAK,EAAEZ,MAAM,CAACuB,OAAQ;QAAAP,QAAA,eAChCb,IAAA,CAACT,IAAI;UAAC8B,UAAU;UAACZ,KAAK,EAAED,MAAM,CAACc,KAAM;UAAAT,QAAA,EAClCT,MAAM,CAACkB;QAAK,CACT;MAAC,CACG,CAAC,eACbpB,KAAA,CAACV,IAAI;QAACiB,KAAK,EAAEZ,MAAM,CAAC0B,OAAQ;QAAAV,QAAA,gBAC1Bb,IAAA,CAACP,MAAM;UAAC+B,KAAK,EAAC,cAAI;UAACC,OAAO,EAAC,WAAW;UAACC,KAAK;UAACC,OAAO,EAAErB;QAAS,CAAE,CAAC,eAClEN,IAAA,CAACP,MAAM;UAAC+B,KAAK,EAAC,cAAI;UAACC,OAAO,EAAC,SAAS;UAACC,KAAK;UAACC,OAAO,EAAEpB;QAAU,CAAE,CAAC;MAAA,CAC7D,CAAC;IAAA,CACH;EAAC,CACH,CAAC;AAEX","ignoreList":[]}
|
|
@@ -9,6 +9,15 @@ export const styles = StyleSheet.create({
|
|
|
9
9
|
right: r(16),
|
|
10
10
|
zIndex: 50
|
|
11
11
|
},
|
|
12
|
+
glass: {
|
|
13
|
+
borderRadius: r(16)
|
|
14
|
+
},
|
|
15
|
+
surface: {
|
|
16
|
+
borderRadius: r(16),
|
|
17
|
+
borderWidth: 2,
|
|
18
|
+
padding: r(14),
|
|
19
|
+
overflow: 'hidden'
|
|
20
|
+
},
|
|
12
21
|
content: {
|
|
13
22
|
maxHeight: r(220),
|
|
14
23
|
marginVertical: r(14)
|
|
@@ -18,7 +27,14 @@ export const styles = StyleSheet.create({
|
|
|
18
27
|
columnGap: r(10)
|
|
19
28
|
}
|
|
20
29
|
});
|
|
21
|
-
export const makeStyles = colors => StyleSheet.create({
|
|
30
|
+
export const makeStyles = (colors, shadow) => StyleSheet.create({
|
|
31
|
+
shadow: {
|
|
32
|
+
borderRadius: r(16),
|
|
33
|
+
...shadow.card
|
|
34
|
+
},
|
|
35
|
+
border: {
|
|
36
|
+
borderColor: colors.primary
|
|
37
|
+
},
|
|
22
38
|
badge: {
|
|
23
39
|
fontSize: rf(13),
|
|
24
40
|
fontWeight: fw.semi,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["StyleSheet","r","rf","fw","fontMono","styles","create","wrap","position","left","right","zIndex","content","maxHeight","marginVertical","actions","flexDirection","columnGap","makeStyles","colors","badge","fontSize","fontWeight","semi","color","foreground","format","foregroundMuted","fontFamily","marginTop","value","lineHeight"],"sourceRoot":"../../../../src","sources":["Scanner/ResultFocus/styles.ts"],"mappings":";;AAAA,SAASA,UAAU,QAAQ,cAAc;AACzC,SACEC,CAAC,EACDC,EAAE,EACFC,EAAE,EACFC,QAAQ,
|
|
1
|
+
{"version":3,"names":["StyleSheet","r","rf","fw","fontMono","styles","create","wrap","position","left","right","zIndex","glass","borderRadius","surface","borderWidth","padding","overflow","content","maxHeight","marginVertical","actions","flexDirection","columnGap","makeStyles","colors","shadow","card","border","borderColor","primary","badge","fontSize","fontWeight","semi","color","foreground","format","foregroundMuted","fontFamily","marginTop","value","lineHeight"],"sourceRoot":"../../../../src","sources":["Scanner/ResultFocus/styles.ts"],"mappings":";;AAAA,SAASA,UAAU,QAAQ,cAAc;AACzC,SACEC,CAAC,EACDC,EAAE,EACFC,EAAE,EACFC,QAAQ,QAGH,2BAA2B;AAElC,OAAO,MAAMC,MAAM,GAAGL,UAAU,CAACM,MAAM,CAAC;EACtCC,IAAI,EAAE;IAAEC,QAAQ,EAAE,UAAU;IAAEC,IAAI,EAAER,CAAC,CAAC,EAAE,CAAC;IAAES,KAAK,EAAET,CAAC,CAAC,EAAE,CAAC;IAAEU,MAAM,EAAE;EAAG,CAAC;EACrEC,KAAK,EAAE;IAAEC,YAAY,EAAEZ,CAAC,CAAC,EAAE;EAAE,CAAC;EAC9Ba,OAAO,EAAE;IACPD,YAAY,EAAEZ,CAAC,CAAC,EAAE,CAAC;IACnBc,WAAW,EAAE,CAAC;IACdC,OAAO,EAAEf,CAAC,CAAC,EAAE,CAAC;IACdgB,QAAQ,EAAE;EACZ,CAAC;EACDC,OAAO,EAAE;IAAEC,SAAS,EAAElB,CAAC,CAAC,GAAG,CAAC;IAAEmB,cAAc,EAAEnB,CAAC,CAAC,EAAE;EAAE,CAAC;EACrDoB,OAAO,EAAE;IAAEC,aAAa,EAAE,KAAK;IAAEC,SAAS,EAAEtB,CAAC,CAAC,EAAE;EAAE;AACpD,CAAC,CAAC;AACF,OAAO,MAAMuB,UAAU,GAAGA,CAACC,MAAmB,EAAEC,MAAoB,KAClE1B,UAAU,CAACM,MAAM,CAAC;EAChBoB,MAAM,EAAE;IAAEb,YAAY,EAAEZ,CAAC,CAAC,EAAE,CAAC;IAAE,GAAGyB,MAAM,CAACC;EAAK,CAAC;EAC/CC,MAAM,EAAE;IAAEC,WAAW,EAAEJ,MAAM,CAACK;EAAQ,CAAC;EACvCC,KAAK,EAAE;IAAEC,QAAQ,EAAE9B,EAAE,CAAC,EAAE,CAAC;IAAE+B,UAAU,EAAE9B,EAAE,CAAC+B,IAAI;IAAEC,KAAK,EAAEV,MAAM,CAACW;EAAW,CAAC;EAC1EC,MAAM,EAAE;IACNL,QAAQ,EAAE9B,EAAE,CAAC,EAAE,CAAC;IAChBiC,KAAK,EAAEV,MAAM,CAACa,eAAe;IAC7BC,UAAU,EAAEnC,QAAQ;IACpBoC,SAAS,EAAEvC,CAAC,CAAC,CAAC;EAChB,CAAC;EACDwC,KAAK,EAAE;IAAET,QAAQ,EAAE9B,EAAE,CAAC,EAAE,CAAC;IAAEwC,UAAU,EAAExC,EAAE,CAAC,EAAE,CAAC;IAAEiC,KAAK,EAAEV,MAAM,CAACW;EAAW;AAC1E,CAAC,CAAC","ignoreList":[]}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
import { ErrorAlertOutlined } from '@unif/react-native-icons';
|
|
3
4
|
import { StyleSheet, View } from 'react-native';
|
|
4
5
|
import { Button, Empty, useThemedStyles, r } from '@unif/react-native-design';
|
|
5
6
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
@@ -11,7 +12,7 @@ export function ScanErrorOverlay({
|
|
|
11
12
|
return /*#__PURE__*/_jsxs(View, {
|
|
12
13
|
style: s.overlay,
|
|
13
14
|
children: [/*#__PURE__*/_jsx(Empty, {
|
|
14
|
-
icon:
|
|
15
|
+
icon: ErrorAlertOutlined,
|
|
15
16
|
title: "\u76F8\u673A\u542F\u52A8\u5931\u8D25",
|
|
16
17
|
desc: "\u65E0\u6CD5\u542F\u52A8\u626B\u7801\u76F8\u673A\uFF0C\u8BF7\u786E\u8BA4\u6743\u9650\u4E0E\u8BBE\u5907\u72B6\u6001\u540E\u91CD\u8BD5\u3002"
|
|
17
18
|
}), /*#__PURE__*/_jsxs(View, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["StyleSheet","View","Button","Empty","useThemedStyles","r","jsx","_jsx","jsxs","_jsxs","ScanErrorOverlay","onClose","onRetry","s","makeStyles","style","overlay","children","icon","title","desc","styles","row","label","variant","block","onPress","create","flexDirection","columnGap","marginTop","c","position","top","left","right","bottom","zIndex","backgroundColor","background","alignItems","justifyContent","paddingHorizontal","rowGap"],"sourceRoot":"../../../src","sources":["Scanner/ScanErrorOverlay.tsx"],"mappings":";;AAAA,SAASA,UAAU,EAAEC,IAAI,QAAQ,cAAc;AAC/C,SACEC,MAAM,EACNC,KAAK,EACLC,eAAe,EACfC,CAAC,QAEI,2BAA2B;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAOnC,OAAO,SAASC,gBAAgBA,CAAC;EAAEC,OAAO;EAAEC;AAA+B,CAAC,EAAE;EAC5E,MAAMC,CAAC,GAAGT,eAAe,CAACU,UAAU,CAAC;EACrC,oBACEL,KAAA,CAACR,IAAI;IAACc,KAAK,EAAEF,CAAC,CAACG,OAAQ;IAAAC,QAAA,gBACrBV,IAAA,CAACJ,KAAK;MACJe,IAAI,
|
|
1
|
+
{"version":3,"names":["ErrorAlertOutlined","StyleSheet","View","Button","Empty","useThemedStyles","r","jsx","_jsx","jsxs","_jsxs","ScanErrorOverlay","onClose","onRetry","s","makeStyles","style","overlay","children","icon","title","desc","styles","row","label","variant","block","onPress","create","flexDirection","columnGap","marginTop","c","position","top","left","right","bottom","zIndex","backgroundColor","background","alignItems","justifyContent","paddingHorizontal","rowGap"],"sourceRoot":"../../../src","sources":["Scanner/ScanErrorOverlay.tsx"],"mappings":";;AAAA,SAASA,kBAAkB,QAAQ,0BAA0B;AAC7D,SAASC,UAAU,EAAEC,IAAI,QAAQ,cAAc;AAC/C,SACEC,MAAM,EACNC,KAAK,EACLC,eAAe,EACfC,CAAC,QAEI,2BAA2B;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAOnC,OAAO,SAASC,gBAAgBA,CAAC;EAAEC,OAAO;EAAEC;AAA+B,CAAC,EAAE;EAC5E,MAAMC,CAAC,GAAGT,eAAe,CAACU,UAAU,CAAC;EACrC,oBACEL,KAAA,CAACR,IAAI;IAACc,KAAK,EAAEF,CAAC,CAACG,OAAQ;IAAAC,QAAA,gBACrBV,IAAA,CAACJ,KAAK;MACJe,IAAI,EAAEnB,kBAAmB;MACzBoB,KAAK,EAAC,sCAAQ;MACdC,IAAI,EAAC;IAAyB,CAC/B,CAAC,eACFX,KAAA,CAACR,IAAI;MAACc,KAAK,EAAEM,MAAM,CAACC,GAAI;MAAAL,QAAA,GACrBN,OAAO,iBACNJ,IAAA,CAACL,MAAM;QAACqB,KAAK,EAAC,cAAI;QAACC,OAAO,EAAC,OAAO;QAACC,KAAK;QAACC,OAAO,EAAEf;MAAQ,CAAE,CAC7D,eACDJ,IAAA,CAACL,MAAM;QAACqB,KAAK,EAAC,cAAI;QAACC,OAAO,EAAC,SAAS;QAACC,KAAK;QAACC,OAAO,EAAEd;MAAQ,CAAE,CAAC;IAAA,CAC3D,CAAC;EAAA,CACH,CAAC;AAEX;AAEA,MAAMS,MAAM,GAAGrB,UAAU,CAAC2B,MAAM,CAAC;EAC/BL,GAAG,EAAE;IAAEM,aAAa,EAAE,KAAK;IAAEC,SAAS,EAAExB,CAAC,CAAC,EAAE,CAAC;IAAEyB,SAAS,EAAEzB,CAAC,CAAC,CAAC;EAAE;AACjE,CAAC,CAAC;AAEF,MAAMS,UAAU,GAAIiB,CAAc,IAChC/B,UAAU,CAAC2B,MAAM,CAAC;EAChBX,OAAO,EAAE;IACPgB,QAAQ,EAAE,UAAU;IACpBC,GAAG,EAAE,CAAC;IACNC,IAAI,EAAE,CAAC;IACPC,KAAK,EAAE,CAAC;IACRC,MAAM,EAAE,CAAC;IACTC,MAAM,EAAE,EAAE;IACVC,eAAe,EAAEP,CAAC,CAACQ,UAAU;IAC7BC,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE,QAAQ;IACxBC,iBAAiB,EAAErC,CAAC,CAAC,EAAE,CAAC;IACxBsC,MAAM,EAAEtC,CAAC,CAAC,CAAC;EACb;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
import { FlashOffOutlined, FlashOnOutlined, ImageOutlined, UndoOutlined } from '@unif/react-native-icons';
|
|
3
4
|
import { Pressable, StyleSheet, Text, View } from 'react-native';
|
|
4
|
-
import {
|
|
5
|
+
import { GlassLayer, darkColors, useColors, r, rf, useThemedStyles, fw } from '@unif/react-native-design';
|
|
5
6
|
import { scanChrome } from "./scanChrome.js";
|
|
6
7
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
7
8
|
// 底部工具栏:返回 · 手电筒 · 相册。点亮态用主题主色。
|
|
@@ -19,28 +20,29 @@ export function ScanToolbar({
|
|
|
19
20
|
}],
|
|
20
21
|
pointerEvents: "box-none",
|
|
21
22
|
children: [onClose && /*#__PURE__*/_jsx(ToolbarItem, {
|
|
22
|
-
icon:
|
|
23
|
+
icon: UndoOutlined,
|
|
23
24
|
label: "\u8FD4\u56DE",
|
|
24
25
|
onPress: onClose
|
|
25
26
|
}), onFlash && /*#__PURE__*/_jsx(ToolbarItem, {
|
|
26
|
-
icon: flash ?
|
|
27
|
+
icon: flash ? FlashOnOutlined : FlashOffOutlined,
|
|
27
28
|
label: flash ? '已开灯' : '手电筒',
|
|
28
29
|
activeColor: flash ? c.primary : undefined,
|
|
29
30
|
onPress: onFlash
|
|
30
31
|
}), onAlbum && /*#__PURE__*/_jsx(ToolbarItem, {
|
|
31
|
-
icon:
|
|
32
|
+
icon: ImageOutlined,
|
|
32
33
|
label: "\u76F8\u518C",
|
|
33
34
|
onPress: onAlbum
|
|
34
35
|
})]
|
|
35
36
|
});
|
|
36
37
|
}
|
|
37
38
|
function ToolbarItem({
|
|
38
|
-
icon,
|
|
39
|
+
icon: Icon,
|
|
39
40
|
label,
|
|
40
41
|
activeColor,
|
|
41
42
|
onPress
|
|
42
43
|
}) {
|
|
43
44
|
const s = useThemedStyles(makeTextStyles);
|
|
45
|
+
const c = useColors();
|
|
44
46
|
return /*#__PURE__*/_jsx(Pressable, {
|
|
45
47
|
onPress: onPress,
|
|
46
48
|
style: styles.item,
|
|
@@ -49,21 +51,21 @@ function ToolbarItem({
|
|
|
49
51
|
children: ({
|
|
50
52
|
pressed
|
|
51
53
|
}) => /*#__PURE__*/_jsxs(_Fragment, {
|
|
52
|
-
children: [/*#__PURE__*/
|
|
54
|
+
children: [/*#__PURE__*/_jsxs(View, {
|
|
53
55
|
style: [styles.circle, activeColor ? {
|
|
54
|
-
backgroundColor: activeColor
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
}],
|
|
62
|
-
children: /*#__PURE__*/_jsx(Icon, {
|
|
63
|
-
name: icon,
|
|
56
|
+
backgroundColor: activeColor
|
|
57
|
+
} : undefined],
|
|
58
|
+
children: [!activeColor && /*#__PURE__*/_jsx(GlassLayer, {
|
|
59
|
+
colorScheme: "dark",
|
|
60
|
+
style: styles.glass,
|
|
61
|
+
testID: "scan-toolbar-glass"
|
|
62
|
+
}), /*#__PURE__*/_jsx(Icon, {
|
|
64
63
|
size: r(23),
|
|
65
|
-
color: scanChrome.white
|
|
66
|
-
|
|
64
|
+
color: activeColor ? c.onPrimary : scanChrome.white,
|
|
65
|
+
style: pressed && {
|
|
66
|
+
opacity: 0.7
|
|
67
|
+
}
|
|
68
|
+
})]
|
|
67
69
|
}), /*#__PURE__*/_jsx(Text, {
|
|
68
70
|
style: s.label,
|
|
69
71
|
children: label
|
|
@@ -86,13 +88,18 @@ const styles = StyleSheet.create({
|
|
|
86
88
|
alignItems: 'center',
|
|
87
89
|
rowGap: r(7)
|
|
88
90
|
},
|
|
91
|
+
glass: {
|
|
92
|
+
borderRadius: 999
|
|
93
|
+
},
|
|
89
94
|
circle: {
|
|
90
95
|
width: r(54),
|
|
91
96
|
height: r(54),
|
|
92
97
|
borderRadius: 999,
|
|
93
98
|
alignItems: 'center',
|
|
94
99
|
justifyContent: 'center',
|
|
95
|
-
borderWidth: StyleSheet.hairlineWidth
|
|
100
|
+
borderWidth: StyleSheet.hairlineWidth,
|
|
101
|
+
borderColor: darkColors.glassBorder,
|
|
102
|
+
overflow: 'hidden'
|
|
96
103
|
}
|
|
97
104
|
});
|
|
98
105
|
const makeTextStyles = () => StyleSheet.create({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Pressable","StyleSheet","Text","View","
|
|
1
|
+
{"version":3,"names":["FlashOffOutlined","FlashOnOutlined","ImageOutlined","UndoOutlined","Pressable","StyleSheet","Text","View","GlassLayer","darkColors","useColors","r","rf","useThemedStyles","fw","scanChrome","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","ScanToolbar","flash","bottomInset","onFlash","onAlbum","onClose","c","style","styles","bar","bottom","pointerEvents","children","ToolbarItem","icon","label","onPress","activeColor","primary","undefined","Icon","s","makeTextStyles","item","accessibilityRole","accessibilityLabel","pressed","circle","backgroundColor","colorScheme","glass","testID","size","color","onPrimary","white","opacity","create","position","left","right","zIndex","flexDirection","justifyContent","columnGap","width","alignItems","rowGap","borderRadius","height","borderWidth","hairlineWidth","borderColor","glassBorder","overflow","fontSize","fontWeight","medium","toolbarLabel","textShadowColor","textShadowOffset","textShadowRadius"],"sourceRoot":"../../../src","sources":["Scanner/ScanToolbar.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
import { ScanOutlined } from '@unif/react-native-icons';
|
|
3
4
|
import { useEffect, useRef } from 'react';
|
|
4
5
|
import { Animated, Easing, StyleSheet, View } from 'react-native';
|
|
5
|
-
import {
|
|
6
|
+
import { useColors, r } from '@unif/react-native-design';
|
|
6
7
|
import { scanChrome } from "./scanChrome.js";
|
|
7
8
|
import { ScanHint } from "./ScanHint.js";
|
|
8
9
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
@@ -88,8 +89,7 @@ export function Viewfinder({
|
|
|
88
89
|
}]
|
|
89
90
|
}), /*#__PURE__*/_jsx(View, {
|
|
90
91
|
style: styles.crosshair,
|
|
91
|
-
children: /*#__PURE__*/_jsx(
|
|
92
|
-
name: "scan",
|
|
92
|
+
children: /*#__PURE__*/_jsx(ScanOutlined, {
|
|
93
93
|
size: r(30),
|
|
94
94
|
color: scanChrome.crosshair
|
|
95
95
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useEffect","useRef","Animated","Easing","StyleSheet","View","
|
|
1
|
+
{"version":3,"names":["ScanOutlined","useEffect","useRef","Animated","Easing","StyleSheet","View","useColors","r","scanChrome","ScanHint","jsx","_jsx","jsxs","_jsxs","WINDOW_RADIUS","Viewfinder","size","detecting","hintText","c","windowH","Math","round","scale","Value","current","pulse","setValue","ease","inOut","breathe","loop","sequence","timing","toValue","duration","easing","useNativeDriver","reticle","start","stop","style","styles","overlay","pointerEvents","children","spacerTop","window","width","height","transform","boxShadow","offsetX","offsetY","blurRadius","spreadDistance","color","scrim","windowBorder","borderColor","primary","opacity","crosshair","spacerBottom","text","create","position","top","left","right","bottom","zIndex","alignItems","flex","borderRadius","borderWidth","marginTop","marginLeft","justifyContent"],"sourceRoot":"../../../src","sources":["Scanner/Viewfinder.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -6,12 +6,6 @@ export const scanChrome = {
|
|
|
6
6
|
/** 相机未就绪时的底色(深色实景占位)。 */
|
|
7
7
|
cameraBg: '#0c0b0a',
|
|
8
8
|
white: '#FFFFFF',
|
|
9
|
-
/** 顶栏关闭键玻璃底。 */
|
|
10
|
-
glassDisc: 'rgba(20,18,16,0.42)',
|
|
11
|
-
/** 工具栏未点亮玻璃底。 */
|
|
12
|
-
glassDisc2: 'rgba(28,26,24,0.5)',
|
|
13
|
-
glassBorder: 'rgba(255,255,255,0.16)',
|
|
14
|
-
glassBorderActive: 'rgba(255,255,255,0.25)',
|
|
15
9
|
/** 取景提示文字。 */
|
|
16
10
|
hintText: 'rgba(255,255,255,0.86)',
|
|
17
11
|
toolbarLabel: 'rgba(255,255,255,0.82)',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["scanChrome","cameraBg","white","
|
|
1
|
+
{"version":3,"names":["scanChrome","cameraBg","white","hintText","toolbarLabel","windowBorder","crosshair","textShadow"],"sourceRoot":"../../../src","sources":["Scanner/scanChrome.ts"],"mappings":";;AAAA;AACA;AACA,OAAO,MAAMA,UAAU,GAAG;EACxB;EACAC,QAAQ,EAAE,SAAS;EACnBC,KAAK,EAAE,SAAS;EAChB;EACAC,QAAQ,EAAE,wBAAwB;EAClCC,YAAY,EAAE,wBAAwB;EACtC;EACAC,YAAY,EAAE,wBAAwB;EACtCC,SAAS,EAAE,uBAAuB;EAClCC,UAAU,EAAE;AACd,CAAU","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeniedOverlay.d.ts","sourceRoot":"","sources":["../../../../src/Scanner/DeniedOverlay.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DeniedOverlay.d.ts","sourceRoot":"","sources":["../../../../src/Scanner/DeniedOverlay.tsx"],"names":[],"mappings":"AAaA,UAAU,kBAAkB;IAC1B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,UAAU,EAAE,MAAM,IAAI,CAAC;CACxB;AAGD,wBAAgB,aAAa,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,kBAAkB,2CAyBxE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ResultFail.d.ts","sourceRoot":"","sources":["../../../../src/Scanner/ResultFail.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ResultFail.d.ts","sourceRoot":"","sources":["../../../../src/Scanner/ResultFail.tsx"],"names":[],"mappings":"AAaA,UAAU,eAAe;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,uCAAuC;IACvC,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB;AAID,wBAAgB,UAAU,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,eAAe,2CA6C5E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ResultFocus.d.ts","sourceRoot":"","sources":["../../../../../src/Scanner/ResultFocus/ResultFocus.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ResultFocus.d.ts","sourceRoot":"","sources":["../../../../../src/Scanner/ResultFocus/ResultFocus.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAGhD,8EAA8E;AAC9E,wBAAgB,WAAW,CAAC,EAC1B,MAAM,EACN,WAAW,EACX,QAAQ,EACR,SAAS,GACV,EAAE,gBAAgB,2CAoBlB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type ColorTokens } from '@unif/react-native-design';
|
|
1
|
+
import { type ColorTokens, type ShadowTokens } from '@unif/react-native-design';
|
|
2
2
|
export declare const styles: {
|
|
3
3
|
wrap: {
|
|
4
4
|
position: "absolute";
|
|
@@ -6,6 +6,15 @@ export declare const styles: {
|
|
|
6
6
|
right: number;
|
|
7
7
|
zIndex: number;
|
|
8
8
|
};
|
|
9
|
+
glass: {
|
|
10
|
+
borderRadius: number;
|
|
11
|
+
};
|
|
12
|
+
surface: {
|
|
13
|
+
borderRadius: number;
|
|
14
|
+
borderWidth: number;
|
|
15
|
+
padding: number;
|
|
16
|
+
overflow: "hidden";
|
|
17
|
+
};
|
|
9
18
|
content: {
|
|
10
19
|
maxHeight: number;
|
|
11
20
|
marginVertical: number;
|
|
@@ -15,7 +24,21 @@ export declare const styles: {
|
|
|
15
24
|
columnGap: number;
|
|
16
25
|
};
|
|
17
26
|
};
|
|
18
|
-
export declare const makeStyles: (colors: ColorTokens) => {
|
|
27
|
+
export declare const makeStyles: (colors: ColorTokens, shadow: ShadowTokens) => {
|
|
28
|
+
shadow: {
|
|
29
|
+
shadowColor: string;
|
|
30
|
+
shadowOffset: {
|
|
31
|
+
readonly width: number;
|
|
32
|
+
readonly height: number;
|
|
33
|
+
};
|
|
34
|
+
shadowOpacity: number;
|
|
35
|
+
shadowRadius: number;
|
|
36
|
+
elevation: number;
|
|
37
|
+
borderRadius: number;
|
|
38
|
+
};
|
|
39
|
+
border: {
|
|
40
|
+
borderColor: string;
|
|
41
|
+
};
|
|
19
42
|
badge: {
|
|
20
43
|
fontSize: number;
|
|
21
44
|
fontWeight: "600";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../../../src/Scanner/ResultFocus/styles.ts"],"names":[],"mappings":"AACA,OAAO,EAKL,KAAK,WAAW,
|
|
1
|
+
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../../../src/Scanner/ResultFocus/styles.ts"],"names":[],"mappings":"AACA,OAAO,EAKL,KAAK,WAAW,EAChB,KAAK,YAAY,EAClB,MAAM,2BAA2B,CAAC;AAEnC,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;CAWjB,CAAC;AACH,eAAO,MAAM,UAAU,GAAI,QAAQ,WAAW,EAAE,QAAQ,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAYhE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScanErrorOverlay.d.ts","sourceRoot":"","sources":["../../../../src/Scanner/ScanErrorOverlay.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ScanErrorOverlay.d.ts","sourceRoot":"","sources":["../../../../src/Scanner/ScanErrorOverlay.tsx"],"names":[],"mappings":"AAUA,UAAU,qBAAqB;IAC7B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,wBAAgB,gBAAgB,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,qBAAqB,2CAiB3E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScanToolbar.d.ts","sourceRoot":"","sources":["../../../../src/Scanner/ScanToolbar.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ScanToolbar.d.ts","sourceRoot":"","sources":["../../../../src/Scanner/ScanToolbar.tsx"],"names":[],"mappings":"AAoBA,UAAU,gBAAgB;IACxB,KAAK,EAAE,OAAO,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB;IACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,6CAA6C;IAC7C,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,iCAAiC;IACjC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAGD,wBAAgB,WAAW,CAAC,EAC1B,KAAK,EACL,WAAW,EACX,OAAO,EACP,OAAO,EACP,OAAO,GACR,EAAE,gBAAgB,2CAuBlB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Viewfinder.d.ts","sourceRoot":"","sources":["../../../../src/Scanner/Viewfinder.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Viewfinder.d.ts","sourceRoot":"","sources":["../../../../src/Scanner/Viewfinder.tsx"],"names":[],"mappings":"AAOA,UAAU,eAAe;IACvB,kCAAkC;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,8BAA8B;IAC9B,SAAS,EAAE,OAAO,CAAC;IACnB,eAAe;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AASD,wBAAgB,UAAU,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,eAAe,2CA4FxE"}
|
|
@@ -2,12 +2,6 @@ export declare const scanChrome: {
|
|
|
2
2
|
/** 相机未就绪时的底色(深色实景占位)。 */
|
|
3
3
|
readonly cameraBg: "#0c0b0a";
|
|
4
4
|
readonly white: "#FFFFFF";
|
|
5
|
-
/** 顶栏关闭键玻璃底。 */
|
|
6
|
-
readonly glassDisc: "rgba(20,18,16,0.42)";
|
|
7
|
-
/** 工具栏未点亮玻璃底。 */
|
|
8
|
-
readonly glassDisc2: "rgba(28,26,24,0.5)";
|
|
9
|
-
readonly glassBorder: "rgba(255,255,255,0.16)";
|
|
10
|
-
readonly glassBorderActive: "rgba(255,255,255,0.25)";
|
|
11
5
|
/** 取景提示文字。 */
|
|
12
6
|
readonly hintText: "rgba(255,255,255,0.86)";
|
|
13
7
|
readonly toolbarLabel: "rgba(255,255,255,0.82)";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scanChrome.d.ts","sourceRoot":"","sources":["../../../../src/Scanner/scanChrome.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,UAAU;IACrB,yBAAyB;;;IAGzB,
|
|
1
|
+
{"version":3,"file":"scanChrome.d.ts","sourceRoot":"","sources":["../../../../src/Scanner/scanChrome.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,UAAU;IACrB,yBAAyB;;;IAGzB,cAAc;;;IAGd,eAAe;;;;CAIP,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@unif/react-native-hms-scan",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.0",
|
|
4
4
|
"description": "Unif React Native 扫码:实时预览、二维码、条码和本地图片识别",
|
|
5
5
|
"main": "./lib/module/index.js",
|
|
6
6
|
"types": "./lib/typescript/src/index.d.ts",
|
|
@@ -92,7 +92,8 @@
|
|
|
92
92
|
"@types/jest": "^29.5.0",
|
|
93
93
|
"@types/react": "^19.2.0",
|
|
94
94
|
"@types/react-test-renderer": "^19",
|
|
95
|
-
"@unif/react-native-design": "0.
|
|
95
|
+
"@unif/react-native-design": ">=1.0.0",
|
|
96
|
+
"@unif/react-native-icons": ">=0.1.0",
|
|
96
97
|
"commitlint": "^20.5.0",
|
|
97
98
|
"del-cli": "^7.0.0",
|
|
98
99
|
"eslint": "^8.57.1",
|
|
@@ -118,7 +119,8 @@
|
|
|
118
119
|
},
|
|
119
120
|
"peerDependencies": {
|
|
120
121
|
"@callstack/liquid-glass": ">=0.8.2 <0.9.0",
|
|
121
|
-
"@unif/react-native-design": ">=0.
|
|
122
|
+
"@unif/react-native-design": ">=1.0.0",
|
|
123
|
+
"@unif/react-native-icons": ">=0.1.0",
|
|
122
124
|
"react": ">=19.2.3 <20.0.0",
|
|
123
125
|
"react-native": ">=0.86.0",
|
|
124
126
|
"react-native-gesture-handler": ">=3.0.0 <4.0.0",
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
import {
|
|
2
|
+
PermissionDeniedOutlined,
|
|
3
|
+
SettingsOutlined,
|
|
4
|
+
} from '@unif/react-native-icons';
|
|
1
5
|
import { StyleSheet, View } from 'react-native';
|
|
2
6
|
import {
|
|
3
7
|
Button,
|
|
@@ -18,7 +22,7 @@ export function DeniedOverlay({ onClose, onSettings }: DeniedOverlayProps) {
|
|
|
18
22
|
return (
|
|
19
23
|
<View style={s.overlay}>
|
|
20
24
|
<Empty
|
|
21
|
-
icon=
|
|
25
|
+
icon={PermissionDeniedOutlined}
|
|
22
26
|
title="需要相机权限"
|
|
23
27
|
desc="开启相机后,才能扫描条码与二维码。请前往系统设置授权。"
|
|
24
28
|
/>
|
|
@@ -31,7 +35,7 @@ export function DeniedOverlay({ onClose, onSettings }: DeniedOverlayProps) {
|
|
|
31
35
|
<Button
|
|
32
36
|
label="去设置开启"
|
|
33
37
|
variant="primary"
|
|
34
|
-
leftIcon=
|
|
38
|
+
leftIcon={SettingsOutlined}
|
|
35
39
|
block
|
|
36
40
|
onPress={onSettings}
|
|
37
41
|
/>
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
import { ErrorAlertOutlined } from '@unif/react-native-icons';
|
|
1
2
|
import { useEffect, useRef } from 'react';
|
|
2
3
|
import { Animated, StyleSheet, View } from 'react-native';
|
|
3
4
|
import {
|
|
4
5
|
Button,
|
|
5
6
|
Empty,
|
|
7
|
+
GlassLayer,
|
|
6
8
|
useThemedStyles,
|
|
7
9
|
r,
|
|
8
10
|
type ColorTokens,
|
|
@@ -45,24 +47,34 @@ export function ResultFail({ bottomInset, failed, onRescan }: ResultFailProps) {
|
|
|
45
47
|
},
|
|
46
48
|
]}
|
|
47
49
|
>
|
|
48
|
-
<View style={
|
|
49
|
-
|
|
50
|
-
<
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
failed
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
50
|
+
<View style={styles.surface}>
|
|
51
|
+
<GlassLayer style={styles.glass} testID="scan-failure-glass" />
|
|
52
|
+
<View style={s.grabber} />
|
|
53
|
+
<View style={[styles.inner, { paddingBottom: bottomInset + r(14) }]}>
|
|
54
|
+
<Empty
|
|
55
|
+
icon={ErrorAlertOutlined}
|
|
56
|
+
title={failed ? '图片识别失败' : '未识别到条码'}
|
|
57
|
+
desc={
|
|
58
|
+
failed
|
|
59
|
+
? '无法读取或解码图片,请重试。'
|
|
60
|
+
: '请将条码完整置于框内、保持平整并对准光线后重试。'
|
|
61
|
+
}
|
|
62
|
+
/>
|
|
63
|
+
<Button label="重扫" variant="primary" block onPress={onRescan} />
|
|
64
|
+
</View>
|
|
60
65
|
</View>
|
|
61
66
|
</Animated.View>
|
|
62
67
|
);
|
|
63
68
|
}
|
|
64
69
|
|
|
65
70
|
const styles = StyleSheet.create({
|
|
71
|
+
glass: { borderTopLeftRadius: r(20), borderTopRightRadius: r(20) },
|
|
72
|
+
surface: {
|
|
73
|
+
borderTopLeftRadius: r(20),
|
|
74
|
+
borderTopRightRadius: r(20),
|
|
75
|
+
paddingTop: r(10),
|
|
76
|
+
overflow: 'hidden',
|
|
77
|
+
},
|
|
66
78
|
inner: { paddingHorizontal: r(18), paddingTop: r(8), rowGap: r(16) },
|
|
67
79
|
});
|
|
68
80
|
|
|
@@ -74,10 +86,8 @@ const makeStyles = (c: ColorTokens, shadow: ShadowTokens) =>
|
|
|
74
86
|
right: 0,
|
|
75
87
|
bottom: 0,
|
|
76
88
|
zIndex: 50,
|
|
77
|
-
backgroundColor: c.surface,
|
|
78
89
|
borderTopLeftRadius: r(20),
|
|
79
90
|
borderTopRightRadius: r(20),
|
|
80
|
-
paddingTop: r(10),
|
|
81
91
|
...shadow.floating,
|
|
82
92
|
},
|
|
83
93
|
grabber: {
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { ScrollView, Text, View } from 'react-native';
|
|
2
2
|
import {
|
|
3
3
|
Button,
|
|
4
|
-
|
|
5
|
-
useColors,
|
|
4
|
+
GlassLayer,
|
|
6
5
|
useThemedStyles,
|
|
7
6
|
r,
|
|
8
7
|
} from '@unif/react-native-design';
|
|
@@ -16,16 +15,11 @@ export function ResultFocus({
|
|
|
16
15
|
onRescan,
|
|
17
16
|
onConfirm,
|
|
18
17
|
}: ResultFocusProps) {
|
|
19
|
-
const colors = useColors();
|
|
20
18
|
const themed = useThemedStyles(makeStyles);
|
|
21
19
|
return (
|
|
22
|
-
<View style={[styles.wrap, { bottom: bottomInset + r(18) }]}>
|
|
23
|
-
<
|
|
24
|
-
|
|
25
|
-
borderWidth={2}
|
|
26
|
-
borderRadius={r(16)}
|
|
27
|
-
padding={r(14)}
|
|
28
|
-
>
|
|
20
|
+
<View style={[styles.wrap, themed.shadow, { bottom: bottomInset + r(18) }]}>
|
|
21
|
+
<View style={[styles.surface, themed.border]}>
|
|
22
|
+
<GlassLayer style={styles.glass} testID="scan-result-glass" />
|
|
29
23
|
<Text style={themed.badge}>已识别</Text>
|
|
30
24
|
<Text style={themed.format}>{result.format}</Text>
|
|
31
25
|
<ScrollView style={styles.content}>
|
|
@@ -37,7 +31,7 @@ export function ResultFocus({
|
|
|
37
31
|
<Button label="重扫" variant="secondary" block onPress={onRescan} />
|
|
38
32
|
<Button label="选用" variant="primary" block onPress={onConfirm} />
|
|
39
33
|
</View>
|
|
40
|
-
</
|
|
34
|
+
</View>
|
|
41
35
|
</View>
|
|
42
36
|
);
|
|
43
37
|
}
|
|
@@ -5,15 +5,25 @@ import {
|
|
|
5
5
|
fw,
|
|
6
6
|
fontMono,
|
|
7
7
|
type ColorTokens,
|
|
8
|
+
type ShadowTokens,
|
|
8
9
|
} from '@unif/react-native-design';
|
|
9
10
|
|
|
10
11
|
export const styles = StyleSheet.create({
|
|
11
12
|
wrap: { position: 'absolute', left: r(16), right: r(16), zIndex: 50 },
|
|
13
|
+
glass: { borderRadius: r(16) },
|
|
14
|
+
surface: {
|
|
15
|
+
borderRadius: r(16),
|
|
16
|
+
borderWidth: 2,
|
|
17
|
+
padding: r(14),
|
|
18
|
+
overflow: 'hidden',
|
|
19
|
+
},
|
|
12
20
|
content: { maxHeight: r(220), marginVertical: r(14) },
|
|
13
21
|
actions: { flexDirection: 'row', columnGap: r(10) },
|
|
14
22
|
});
|
|
15
|
-
export const makeStyles = (colors: ColorTokens) =>
|
|
23
|
+
export const makeStyles = (colors: ColorTokens, shadow: ShadowTokens) =>
|
|
16
24
|
StyleSheet.create({
|
|
25
|
+
shadow: { borderRadius: r(16), ...shadow.card },
|
|
26
|
+
border: { borderColor: colors.primary },
|
|
17
27
|
badge: { fontSize: rf(13), fontWeight: fw.semi, color: colors.foreground },
|
|
18
28
|
format: {
|
|
19
29
|
fontSize: rf(12),
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ErrorAlertOutlined } from '@unif/react-native-icons';
|
|
1
2
|
import { StyleSheet, View } from 'react-native';
|
|
2
3
|
import {
|
|
3
4
|
Button,
|
|
@@ -17,12 +18,14 @@ export function ScanErrorOverlay({ onClose, onRetry }: ScanErrorOverlayProps) {
|
|
|
17
18
|
return (
|
|
18
19
|
<View style={s.overlay}>
|
|
19
20
|
<Empty
|
|
20
|
-
icon=
|
|
21
|
+
icon={ErrorAlertOutlined}
|
|
21
22
|
title="相机启动失败"
|
|
22
23
|
desc="无法启动扫码相机,请确认权限与设备状态后重试。"
|
|
23
24
|
/>
|
|
24
25
|
<View style={styles.row}>
|
|
25
|
-
{onClose &&
|
|
26
|
+
{onClose && (
|
|
27
|
+
<Button label="取消" variant="ghost" block onPress={onClose} />
|
|
28
|
+
)}
|
|
26
29
|
<Button label="重试" variant="primary" block onPress={onRetry} />
|
|
27
30
|
</View>
|
|
28
31
|
</View>
|
|
@@ -1,12 +1,20 @@
|
|
|
1
|
+
import {
|
|
2
|
+
FlashOffOutlined,
|
|
3
|
+
FlashOnOutlined,
|
|
4
|
+
ImageOutlined,
|
|
5
|
+
UndoOutlined,
|
|
6
|
+
} from '@unif/react-native-icons';
|
|
7
|
+
import type { ComponentType } from 'react';
|
|
8
|
+
import type { IconProps } from '@unif/react-native-icons';
|
|
1
9
|
import { Pressable, StyleSheet, Text, View } from 'react-native';
|
|
2
10
|
import {
|
|
3
|
-
|
|
11
|
+
GlassLayer,
|
|
12
|
+
darkColors,
|
|
4
13
|
useColors,
|
|
5
14
|
r,
|
|
6
15
|
rf,
|
|
7
16
|
useThemedStyles,
|
|
8
17
|
fw,
|
|
9
|
-
type IconName,
|
|
10
18
|
} from '@unif/react-native-design';
|
|
11
19
|
import { scanChrome } from './scanChrome';
|
|
12
20
|
|
|
@@ -35,32 +43,37 @@ export function ScanToolbar({
|
|
|
35
43
|
style={[styles.bar, { bottom: bottomInset + r(50) }]}
|
|
36
44
|
pointerEvents="box-none"
|
|
37
45
|
>
|
|
38
|
-
{onClose &&
|
|
46
|
+
{onClose && (
|
|
47
|
+
<ToolbarItem icon={UndoOutlined} label="返回" onPress={onClose} />
|
|
48
|
+
)}
|
|
39
49
|
{onFlash && (
|
|
40
50
|
<ToolbarItem
|
|
41
|
-
icon={flash ?
|
|
51
|
+
icon={flash ? FlashOnOutlined : FlashOffOutlined}
|
|
42
52
|
label={flash ? '已开灯' : '手电筒'}
|
|
43
53
|
activeColor={flash ? c.primary : undefined}
|
|
44
54
|
onPress={onFlash}
|
|
45
55
|
/>
|
|
46
56
|
)}
|
|
47
|
-
{onAlbum &&
|
|
57
|
+
{onAlbum && (
|
|
58
|
+
<ToolbarItem icon={ImageOutlined} label="相册" onPress={onAlbum} />
|
|
59
|
+
)}
|
|
48
60
|
</View>
|
|
49
61
|
);
|
|
50
62
|
}
|
|
51
63
|
|
|
52
64
|
function ToolbarItem({
|
|
53
|
-
icon,
|
|
65
|
+
icon: Icon,
|
|
54
66
|
label,
|
|
55
67
|
activeColor,
|
|
56
68
|
onPress,
|
|
57
69
|
}: {
|
|
58
|
-
icon:
|
|
70
|
+
icon: ComponentType<IconProps>;
|
|
59
71
|
label: string;
|
|
60
72
|
activeColor?: string;
|
|
61
73
|
onPress: () => void;
|
|
62
74
|
}) {
|
|
63
75
|
const s = useThemedStyles(makeTextStyles);
|
|
76
|
+
const c = useColors();
|
|
64
77
|
return (
|
|
65
78
|
<Pressable
|
|
66
79
|
onPress={onPress}
|
|
@@ -73,19 +86,21 @@ function ToolbarItem({
|
|
|
73
86
|
<View
|
|
74
87
|
style={[
|
|
75
88
|
styles.circle,
|
|
76
|
-
activeColor
|
|
77
|
-
? {
|
|
78
|
-
backgroundColor: activeColor,
|
|
79
|
-
borderColor: scanChrome.glassBorderActive,
|
|
80
|
-
}
|
|
81
|
-
: {
|
|
82
|
-
backgroundColor: scanChrome.glassDisc2,
|
|
83
|
-
borderColor: scanChrome.glassBorder,
|
|
84
|
-
},
|
|
85
|
-
pressed && { opacity: 0.7 },
|
|
89
|
+
activeColor ? { backgroundColor: activeColor } : undefined,
|
|
86
90
|
]}
|
|
87
91
|
>
|
|
88
|
-
|
|
92
|
+
{!activeColor && (
|
|
93
|
+
<GlassLayer
|
|
94
|
+
colorScheme="dark"
|
|
95
|
+
style={styles.glass}
|
|
96
|
+
testID="scan-toolbar-glass"
|
|
97
|
+
/>
|
|
98
|
+
)}
|
|
99
|
+
<Icon
|
|
100
|
+
size={r(23)}
|
|
101
|
+
color={activeColor ? c.onPrimary : scanChrome.white}
|
|
102
|
+
style={pressed && { opacity: 0.7 }}
|
|
103
|
+
/>
|
|
89
104
|
</View>
|
|
90
105
|
<Text style={s.label}>{label}</Text>
|
|
91
106
|
</>
|
|
@@ -105,6 +120,7 @@ const styles = StyleSheet.create({
|
|
|
105
120
|
columnGap: r(40),
|
|
106
121
|
},
|
|
107
122
|
item: { width: r(72), alignItems: 'center', rowGap: r(7) },
|
|
123
|
+
glass: { borderRadius: 999 },
|
|
108
124
|
circle: {
|
|
109
125
|
width: r(54),
|
|
110
126
|
height: r(54),
|
|
@@ -112,6 +128,8 @@ const styles = StyleSheet.create({
|
|
|
112
128
|
alignItems: 'center',
|
|
113
129
|
justifyContent: 'center',
|
|
114
130
|
borderWidth: StyleSheet.hairlineWidth,
|
|
131
|
+
borderColor: darkColors.glassBorder,
|
|
132
|
+
overflow: 'hidden',
|
|
115
133
|
},
|
|
116
134
|
});
|
|
117
135
|
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import { ScanOutlined } from '@unif/react-native-icons';
|
|
1
2
|
import { useEffect, useRef } from 'react';
|
|
2
3
|
import { Animated, Easing, StyleSheet, View } from 'react-native';
|
|
3
|
-
import {
|
|
4
|
+
import { useColors, r } from '@unif/react-native-design';
|
|
4
5
|
import { scanChrome } from './scanChrome';
|
|
5
6
|
import { ScanHint } from './ScanHint';
|
|
6
7
|
|
|
@@ -35,14 +36,34 @@ export function Viewfinder({ size, detecting, hintText }: ViewfinderProps) {
|
|
|
35
36
|
const ease = Easing.inOut(Easing.ease);
|
|
36
37
|
const breathe = Animated.loop(
|
|
37
38
|
Animated.sequence([
|
|
38
|
-
Animated.timing(scale, {
|
|
39
|
-
|
|
39
|
+
Animated.timing(scale, {
|
|
40
|
+
toValue: 1.012,
|
|
41
|
+
duration: 1300,
|
|
42
|
+
easing: ease,
|
|
43
|
+
useNativeDriver: true,
|
|
44
|
+
}),
|
|
45
|
+
Animated.timing(scale, {
|
|
46
|
+
toValue: 1,
|
|
47
|
+
duration: 1300,
|
|
48
|
+
easing: ease,
|
|
49
|
+
useNativeDriver: true,
|
|
50
|
+
}),
|
|
40
51
|
])
|
|
41
52
|
);
|
|
42
53
|
const reticle = Animated.loop(
|
|
43
54
|
Animated.sequence([
|
|
44
|
-
Animated.timing(pulse, {
|
|
45
|
-
|
|
55
|
+
Animated.timing(pulse, {
|
|
56
|
+
toValue: 0.55,
|
|
57
|
+
duration: 900,
|
|
58
|
+
easing: ease,
|
|
59
|
+
useNativeDriver: true,
|
|
60
|
+
}),
|
|
61
|
+
Animated.timing(pulse, {
|
|
62
|
+
toValue: 1,
|
|
63
|
+
duration: 900,
|
|
64
|
+
easing: ease,
|
|
65
|
+
useNativeDriver: true,
|
|
66
|
+
}),
|
|
46
67
|
])
|
|
47
68
|
);
|
|
48
69
|
breathe.start();
|
|
@@ -67,7 +88,13 @@ export function Viewfinder({ size, detecting, hintText }: ViewfinderProps) {
|
|
|
67
88
|
transform: [{ scale }],
|
|
68
89
|
// spread 铺满全屏的纯色硬边阴影 = 圆角洞之外的暗化遮罩(blur 0 → 不晕开)。
|
|
69
90
|
boxShadow: [
|
|
70
|
-
{
|
|
91
|
+
{
|
|
92
|
+
offsetX: 0,
|
|
93
|
+
offsetY: 0,
|
|
94
|
+
blurRadius: 0,
|
|
95
|
+
spreadDistance: 9999,
|
|
96
|
+
color: c.scrim,
|
|
97
|
+
},
|
|
71
98
|
],
|
|
72
99
|
},
|
|
73
100
|
]}
|
|
@@ -77,7 +104,7 @@ export function Viewfinder({ size, detecting, hintText }: ViewfinderProps) {
|
|
|
77
104
|
style={[styles.reticle, { borderColor: c.primary, opacity: pulse }]}
|
|
78
105
|
/>
|
|
79
106
|
<View style={styles.crosshair}>
|
|
80
|
-
<
|
|
107
|
+
<ScanOutlined size={r(30)} color={scanChrome.crosshair} />
|
|
81
108
|
</View>
|
|
82
109
|
</Animated.View>
|
|
83
110
|
|
|
@@ -4,12 +4,6 @@ export const scanChrome = {
|
|
|
4
4
|
/** 相机未就绪时的底色(深色实景占位)。 */
|
|
5
5
|
cameraBg: '#0c0b0a',
|
|
6
6
|
white: '#FFFFFF',
|
|
7
|
-
/** 顶栏关闭键玻璃底。 */
|
|
8
|
-
glassDisc: 'rgba(20,18,16,0.42)',
|
|
9
|
-
/** 工具栏未点亮玻璃底。 */
|
|
10
|
-
glassDisc2: 'rgba(28,26,24,0.5)',
|
|
11
|
-
glassBorder: 'rgba(255,255,255,0.16)',
|
|
12
|
-
glassBorderActive: 'rgba(255,255,255,0.25)',
|
|
13
7
|
/** 取景提示文字。 */
|
|
14
8
|
hintText: 'rgba(255,255,255,0.86)',
|
|
15
9
|
toolbarLabel: 'rgba(255,255,255,0.82)',
|