@unif/react-native-hms-scan 0.3.1 → 0.4.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.
Files changed (30) hide show
  1. package/lib/module/Scanner/ResultFail.js +4 -5
  2. package/lib/module/Scanner/ResultFail.js.map +1 -1
  3. package/lib/module/Scanner/ResultFocus.js +4 -4
  4. package/lib/module/Scanner/ResultFocus.js.map +1 -1
  5. package/lib/module/Scanner/ScanToolbar.js +8 -3
  6. package/lib/module/Scanner/ScanToolbar.js.map +1 -1
  7. package/lib/module/Scanner/ScanTopBar.js +10 -47
  8. package/lib/module/Scanner/ScanTopBar.js.map +1 -1
  9. package/lib/module/Scanner/Scanner.js +9 -8
  10. package/lib/module/Scanner/Scanner.js.map +1 -1
  11. package/lib/module/Scanner/Viewfinder.js +43 -45
  12. package/lib/module/Scanner/Viewfinder.js.map +1 -1
  13. package/lib/typescript/src/Scanner/ResultFail.d.ts +3 -2
  14. package/lib/typescript/src/Scanner/ResultFail.d.ts.map +1 -1
  15. package/lib/typescript/src/Scanner/ResultFocus.d.ts +4 -2
  16. package/lib/typescript/src/Scanner/ResultFocus.d.ts.map +1 -1
  17. package/lib/typescript/src/Scanner/ScanToolbar.d.ts +3 -1
  18. package/lib/typescript/src/Scanner/ScanToolbar.d.ts.map +1 -1
  19. package/lib/typescript/src/Scanner/ScanTopBar.d.ts +1 -4
  20. package/lib/typescript/src/Scanner/ScanTopBar.d.ts.map +1 -1
  21. package/lib/typescript/src/Scanner/Scanner.d.ts +1 -1
  22. package/lib/typescript/src/Scanner/Scanner.d.ts.map +1 -1
  23. package/lib/typescript/src/Scanner/Viewfinder.d.ts.map +1 -1
  24. package/package.json +3 -3
  25. package/src/Scanner/ResultFail.tsx +5 -4
  26. package/src/Scanner/ResultFocus.tsx +7 -5
  27. package/src/Scanner/ScanToolbar.tsx +11 -2
  28. package/src/Scanner/ScanTopBar.tsx +5 -37
  29. package/src/Scanner/Scanner.tsx +9 -7
  30. package/src/Scanner/Viewfinder.tsx +45 -26
@@ -4,11 +4,11 @@ import { useEffect, useRef } from 'react';
4
4
  import { Animated, StyleSheet, View } from 'react-native';
5
5
  import { Button, Empty, useThemedStyles, r } from '@unif/react-native-design';
6
6
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
7
- // 未识别失败的底部弹层:design 的 Empty(error-alert)+ Button(重新扫描)。
7
+ // 未识别失败的底部弹层:design 的 Empty(error-alert)+ Button(重扫)。
8
8
  // 聚焦款不加背景遮罩,与浮层确认卡保持一致。
9
9
  export function ResultFail({
10
10
  bottomInset,
11
- onRetry
11
+ onRescan
12
12
  }) {
13
13
  const s = useThemedStyles(makeStyles);
14
14
  const anim = useRef(new Animated.Value(0)).current;
@@ -39,11 +39,10 @@ export function ResultFail({
39
39
  title: "\u672A\u8BC6\u522B\u5230\u6761\u7801",
40
40
  desc: "\u8BF7\u5C06\u6761\u7801\u5B8C\u6574\u7F6E\u4E8E\u6846\u5185\u3001\u4FDD\u6301\u5E73\u6574\u5E76\u5BF9\u51C6\u5149\u7EBF\u540E\u91CD\u8BD5\u3002"
41
41
  }), /*#__PURE__*/_jsx(Button, {
42
- label: "\u91CD\u65B0\u626B\u63CF",
43
- leftIcon: "retry",
42
+ label: "\u91CD\u626B",
44
43
  variant: "primary",
45
44
  block: true,
46
- onPress: onRetry
45
+ onPress: onRescan
47
46
  })]
48
47
  })]
49
48
  });
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","useRef","Animated","StyleSheet","View","Button","Empty","useThemedStyles","r","jsx","_jsx","jsxs","_jsxs","ResultFail","bottomInset","onRetry","s","makeStyles","anim","Value","current","timing","toValue","duration","useNativeDriver","start","style","sheet","transform","translateY","interpolate","inputRange","outputRange","children","grabber","styles","inner","paddingBottom","icon","title","desc","label","leftIcon","variant","block","onPress","create","paddingHorizontal","paddingTop","rowGap","c","shadow","position","left","right","bottom","zIndex","backgroundColor","surface","borderTopLeftRadius","borderTopRightRadius","floating","width","height","borderRadius","surfaceContainerHighest","alignSelf"],"sourceRoot":"../../../src","sources":["Scanner/ResultFail.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useEffect","useRef","Animated","StyleSheet","View","Button","Empty","useThemedStyles","r","jsx","_jsx","jsxs","_jsxs","ResultFail","bottomInset","onRescan","s","makeStyles","anim","Value","current","timing","toValue","duration","useNativeDriver","start","style","sheet","transform","translateY","interpolate","inputRange","outputRange","children","grabber","styles","inner","paddingBottom","icon","title","desc","label","variant","block","onPress","create","paddingHorizontal","paddingTop","rowGap","c","shadow","position","left","right","bottom","zIndex","backgroundColor","surface","borderTopLeftRadius","borderTopRightRadius","floating","width","height","borderRadius","surfaceContainerHighest","alignSelf"],"sourceRoot":"../../../src","sources":["Scanner/ResultFail.tsx"],"mappings":"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","ignoreList":[]}
@@ -9,7 +9,7 @@ export function ResultFocus({
9
9
  product,
10
10
  detectMs,
11
11
  bottomInset,
12
- onContinue,
12
+ onRescan,
13
13
  onConfirm
14
14
  }) {
15
15
  const c = useColors();
@@ -86,12 +86,12 @@ export function ResultFocus({
86
86
  }), /*#__PURE__*/_jsxs(View, {
87
87
  style: styles.actions,
88
88
  children: [/*#__PURE__*/_jsx(Button, {
89
- label: "\u7EE7\u7EED\u626B\u63CF",
89
+ label: "\u91CD\u626B",
90
90
  variant: "secondary",
91
- onPress: onContinue,
91
+ onPress: onRescan,
92
92
  style: styles.btn
93
93
  }), /*#__PURE__*/_jsx(Button, {
94
- label: "\u786E\u8BA4",
94
+ label: "\u786E\u5B9A",
95
95
  variant: "primary",
96
96
  onPress: onConfirm,
97
97
  style: styles.btn
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","useRef","Animated","StyleSheet","Text","View","Avatar","Button","Card","StatusDot","useColors","useThemedStyles","r","rf","fw","fontMono","jsx","_jsx","jsxs","_jsxs","ResultFocus","product","detectMs","bottomInset","onContinue","onConfirm","c","s","makeStyles","anim","Value","current","timing","toValue","duration","useNativeDriver","start","brandChar","brand","name","charAt","badge","toFixed","caption","priceCaption","style","styles","wrap","bottom","opacity","transform","translateY","interpolate","inputRange","outputRange","children","borderColor","primary","borderWidth","borderRadius","padding","header","status","size","spacer","barcode","body","label","variant","info","numberOfLines","spec","stockShort","sub","filter","Boolean","join","price","priceCol","actions","onPress","btn","create","position","left","right","zIndex","flexDirection","alignItems","columnGap","marginBottom","flex","minWidth","fontSize","fontWeight","semi","color","foreground","foregroundSubtle","fontFamily","lineHeight","foregroundMuted","marginTop","heavy"],"sourceRoot":"../../../src","sources":["Scanner/ResultFocus.tsx"],"mappings":";;AAAA,SAASA,SAAS,EAAEC,MAAM,QAAQ,OAAO;AACzC,SAASC,QAAQ,EAAEC,UAAU,EAAEC,IAAI,EAAEC,IAAI,QAAQ,cAAc;AAC/D,SACEC,MAAM,EACNC,MAAM,EACNC,IAAI,EACJC,SAAS,EACTC,SAAS,EACTC,eAAe,EACfC,CAAC,EACDC,EAAE,EACFC,EAAE,EACFC,QAAQ,QACH,2BAA2B;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAYnC;AACA,OAAO,SAASC,WAAWA,CAAC;EAC1BC,OAAO;EACPC,QAAQ;EACRC,WAAW;EACXC,UAAU;EACVC;AACgB,CAAC,EAAE;EACnB,MAAMC,CAAC,GAAGhB,SAAS,CAAC,CAAC;EACrB,MAAMiB,CAAC,GAAGhB,eAAe,CAACiB,UAAU,CAAC;EACrC,MAAMC,IAAI,GAAG5B,MAAM,CAAC,IAAIC,QAAQ,CAAC4B,KAAK,CAAC,CAAC,CAAC,CAAC,CAACC,OAAO;EAClD/B,SAAS,CAAC,MAAM;IACdE,QAAQ,CAAC8B,MAAM,CAACH,IAAI,EAAE;MAAEI,OAAO,EAAE,CAAC;MAAEC,QAAQ,EAAE,GAAG;MAAEC,eAAe,EAAE;IAAK,CAAC,CAAC,CAACC,KAAK,CAAC,CAAC;EACrF,CAAC,EAAE,CAACP,IAAI,CAAC,CAAC;EAEV,MAAMQ,SAAS,GAAGhB,OAAO,CAACgB,SAAS,IAAI,CAAChB,OAAO,CAACiB,KAAK,IAAIjB,OAAO,CAACkB,IAAI,EAAEC,MAAM,CAAC,CAAC,CAAC;EAChF,MAAMC,KAAK,GAAGnB,QAAQ,GAAG,CAAC,GAAG,SAAS,CAACA,QAAQ,GAAG,IAAI,EAAEoB,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK;EAC7E,MAAMC,OAAO,GAAGtB,OAAO,CAACuB,YAAY,IAAI,MAAM;EAE9C,oBACE3B,IAAA,CAACf,QAAQ,CAACG,IAAI;IACZwC,KAAK,EAAE,CACLC,MAAM,CAACC,IAAI,EACX;MAAEC,MAAM,EAAEzB,WAAW,GAAGX,CAAC,CAAC,EAAE;IAAE,CAAC,EAC/B;MACEqC,OAAO,EAAEpB,IAAI;MACbqB,SAAS,EAAE,CAAC;QAAEC,UAAU,EAAEtB,IAAI,CAACuB,WAAW,CAAC;UAAEC,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;UAAEC,WAAW,EAAE,CAAC1C,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;QAAE,CAAC;MAAE,CAAC;IAC/F,CAAC,CACD;IAAA2C,QAAA,eAEFpC,KAAA,CAACX,IAAI;MAACgD,WAAW,EAAE9B,CAAC,CAAC+B,OAAQ;MAACC,WAAW,EAAE,CAAE;MAACC,YAAY,EAAE/C,CAAC,CAAC,EAAE,CAAE;MAACgD,OAAO,EAAEhD,CAAC,CAAC,EAAE,CAAE;MAAA2C,QAAA,gBAEhFpC,KAAA,CAACd,IAAI;QAACwC,KAAK,EAAEC,MAAM,CAACe,MAAO;QAAAN,QAAA,gBACzBtC,IAAA,CAACR,SAAS;UAACqD,MAAM,EAAC,MAAM;UAACC,IAAI,EAAEnD,CAAC,CAAC,EAAE;QAAE,CAAE,CAAC,eACxCK,IAAA,CAACb,IAAI;UAACyC,KAAK,EAAElB,CAAC,CAACc,KAAM;UAAAc,QAAA,EAAEd;QAAK,CAAO,CAAC,eACpCxB,IAAA,CAACZ,IAAI;UAACwC,KAAK,EAAEC,MAAM,CAACkB;QAAO,CAAE,CAAC,EAC7B,CAAC,CAAC3C,OAAO,CAAC4C,OAAO,iBAAIhD,IAAA,CAACb,IAAI;UAACyC,KAAK,EAAElB,CAAC,CAACsC,OAAQ;UAAAV,QAAA,EAAElC,OAAO,CAAC4C;QAAO,CAAO,CAAC;MAAA,CAClE,CAAC,eAGP9C,KAAA,CAACd,IAAI;QAACwC,KAAK,EAAEC,MAAM,CAACoB,IAAK;QAAAX,QAAA,gBACvBtC,IAAA,CAACX,MAAM;UAAC6D,KAAK,EAAE9B,SAAU;UAAC+B,OAAO,EAAC,OAAO;UAACL,IAAI,EAAC;QAAI,CAAE,CAAC,eACtD5C,KAAA,CAACd,IAAI;UAACwC,KAAK,EAAEC,MAAM,CAACuB,IAAK;UAAAd,QAAA,gBACvBpC,KAAA,CAACf,IAAI;YAACyC,KAAK,EAAElB,CAAC,CAACY,IAAK;YAAC+B,aAAa,EAAE,CAAE;YAAAf,QAAA,GACnClC,OAAO,CAACiB,KAAK,GAAG,GAAGjB,OAAO,CAACiB,KAAK,GAAG,GAAG,EAAE,EACxCjB,OAAO,CAACkB,IAAI;UAAA,CACT,CAAC,EACN,CAAC,EAAElB,OAAO,CAACkD,IAAI,IAAIlD,OAAO,CAACmD,UAAU,CAAC,iBACrCvD,IAAA,CAACb,IAAI;YAACyC,KAAK,EAAElB,CAAC,CAAC8C,GAAI;YAACH,aAAa,EAAE,CAAE;YAAAf,QAAA,EAClC,CAAClC,OAAO,CAACkD,IAAI,EAAElD,OAAO,CAACmD,UAAU,GAAG,KAAKnD,OAAO,CAACmD,UAAU,EAAE,GAAG,IAAI,CAAC,CACnEE,MAAM,CAACC,OAAO,CAAC,CACfC,IAAI,CAAC,KAAK;UAAC,CACV,CACP;QAAA,CACG,CAAC,EACN,CAAC,CAACvD,OAAO,CAACwD,KAAK,iBACd1D,KAAA,CAACd,IAAI;UAACwC,KAAK,EAAEC,MAAM,CAACgC,QAAS;UAAAvB,QAAA,gBAC3BtC,IAAA,CAACb,IAAI;YAACyC,KAAK,EAAElB,CAAC,CAACkD,KAAM;YAAAtB,QAAA,EAAElC,OAAO,CAACwD;UAAK,CAAO,CAAC,eAC5C5D,IAAA,CAACb,IAAI;YAACyC,KAAK,EAAElB,CAAC,CAACgB,OAAQ;YAAAY,QAAA,EAAEZ;UAAO,CAAO,CAAC;QAAA,CACpC,CACP;MAAA,CACG,CAAC,eAGPxB,KAAA,CAACd,IAAI;QAACwC,KAAK,EAAEC,MAAM,CAACiC,OAAQ;QAAAxB,QAAA,gBAC1BtC,IAAA,CAACV,MAAM;UAAC4D,KAAK,EAAC,0BAAM;UAACC,OAAO,EAAC,WAAW;UAACY,OAAO,EAAExD,UAAW;UAACqB,KAAK,EAAEC,MAAM,CAACmC;QAAI,CAAE,CAAC,eACnFhE,IAAA,CAACV,MAAM;UAAC4D,KAAK,EAAC,cAAI;UAACC,OAAO,EAAC,SAAS;UAACY,OAAO,EAAEvD,SAAU;UAACoB,KAAK,EAAEC,MAAM,CAACmC;QAAI,CAAE,CAAC;MAAA,CAC1E,CAAC;IAAA,CACH;EAAC,CACM,CAAC;AAEpB;AAEA,MAAMnC,MAAM,GAAG3C,UAAU,CAAC+E,MAAM,CAAC;EAC/BnC,IAAI,EAAE;IAAEoC,QAAQ,EAAE,UAAU;IAAEC,IAAI,EAAExE,CAAC,CAAC,EAAE,CAAC;IAAEyE,KAAK,EAAEzE,CAAC,CAAC,EAAE,CAAC;IAAE0E,MAAM,EAAE;EAAG,CAAC;EACrEzB,MAAM,EAAE;IAAE0B,aAAa,EAAE,KAAK;IAAEC,UAAU,EAAE,QAAQ;IAAEC,SAAS,EAAE7E,CAAC,CAAC,CAAC,CAAC;IAAE8E,YAAY,EAAE9E,CAAC,CAAC,EAAE;EAAE,CAAC;EAC5FoD,MAAM,EAAE;IAAE2B,IAAI,EAAE;EAAE,CAAC;EACnBzB,IAAI,EAAE;IAAEqB,aAAa,EAAE,KAAK;IAAEC,UAAU,EAAE,QAAQ;IAAEC,SAAS,EAAE7E,CAAC,CAAC,EAAE,CAAC;IAAE8E,YAAY,EAAE9E,CAAC,CAAC,EAAE;EAAE,CAAC;EAC3FyD,IAAI,EAAE;IAAEsB,IAAI,EAAE,CAAC;IAAEC,QAAQ,EAAE;EAAE,CAAC;EAC9Bd,QAAQ,EAAE;IAAEU,UAAU,EAAE;EAAW,CAAC;EACpCT,OAAO,EAAE;IAAEQ,aAAa,EAAE,KAAK;IAAEE,SAAS,EAAE7E,CAAC,CAAC,EAAE;EAAE,CAAC;EACnDqE,GAAG,EAAE;IAAEU,IAAI,EAAE;EAAE;AACjB,CAAC,CAAC;AAEF,MAAM/D,UAAU,GAAIF,CAA+B,IACjDvB,UAAU,CAAC+E,MAAM,CAAC;EAChBzC,KAAK,EAAE;IAAEoD,QAAQ,EAAEhF,EAAE,CAAC,EAAE,CAAC;IAAEiF,UAAU,EAAEhF,EAAE,CAACiF,IAAI;IAAEC,KAAK,EAAEtE,CAAC,CAACuE;EAAW,CAAC;EACrEhC,OAAO,EAAE;IAAE4B,QAAQ,EAAEhF,EAAE,CAAC,EAAE,CAAC;IAAEmF,KAAK,EAAEtE,CAAC,CAACwE,gBAAgB;IAAEC,UAAU,EAAEpF;EAAS,CAAC;EAC9EwB,IAAI,EAAE;IAAEsD,QAAQ,EAAEhF,EAAE,CAAC,EAAE,CAAC;IAAEiF,UAAU,EAAEhF,EAAE,CAACiF,IAAI;IAAEC,KAAK,EAAEtE,CAAC,CAACuE,UAAU;IAAEG,UAAU,EAAEvF,EAAE,CAAC,EAAE;EAAE,CAAC;EACxF4D,GAAG,EAAE;IAAEoB,QAAQ,EAAEhF,EAAE,CAAC,IAAI,CAAC;IAAEmF,KAAK,EAAEtE,CAAC,CAAC2E,eAAe;IAAEC,SAAS,EAAE1F,CAAC,CAAC,CAAC;EAAE,CAAC;EACtEiE,KAAK,EAAE;IAAEgB,QAAQ,EAAEhF,EAAE,CAAC,EAAE,CAAC;IAAEiF,UAAU,EAAEhF,EAAE,CAACyF,KAAK;IAAEP,KAAK,EAAEtE,CAAC,CAAC+B,OAAO;IAAE2C,UAAU,EAAEvF,EAAE,CAAC,EAAE;EAAE,CAAC;EACvF8B,OAAO,EAAE;IAAEkD,QAAQ,EAAEhF,EAAE,CAAC,EAAE,CAAC;IAAEmF,KAAK,EAAEtE,CAAC,CAACwE,gBAAgB;IAAEI,SAAS,EAAE1F,CAAC,CAAC,CAAC;EAAE;AAC1E,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["useEffect","useRef","Animated","StyleSheet","Text","View","Avatar","Button","Card","StatusDot","useColors","useThemedStyles","r","rf","fw","fontMono","jsx","_jsx","jsxs","_jsxs","ResultFocus","product","detectMs","bottomInset","onRescan","onConfirm","c","s","makeStyles","anim","Value","current","timing","toValue","duration","useNativeDriver","start","brandChar","brand","name","charAt","badge","toFixed","caption","priceCaption","style","styles","wrap","bottom","opacity","transform","translateY","interpolate","inputRange","outputRange","children","borderColor","primary","borderWidth","borderRadius","padding","header","status","size","spacer","barcode","body","label","variant","info","numberOfLines","spec","stockShort","sub","filter","Boolean","join","price","priceCol","actions","onPress","btn","create","position","left","right","zIndex","flexDirection","alignItems","columnGap","marginBottom","flex","minWidth","fontSize","fontWeight","semi","color","foreground","foregroundSubtle","fontFamily","lineHeight","foregroundMuted","marginTop","heavy"],"sourceRoot":"../../../src","sources":["Scanner/ResultFocus.tsx"],"mappings":"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","ignoreList":[]}
@@ -4,12 +4,13 @@ import { Pressable, StyleSheet, Text, View } from 'react-native';
4
4
  import { Icon, useColors, r, rf, fw } from '@unif/react-native-design';
5
5
  import { scanChrome } from "./scanChrome.js";
6
6
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
7
- // 底部工具栏:手电筒 · 相册(按定稿,去掉了搜索 / 输入码)。点亮态用主题主色。
7
+ // 底部工具栏:返回 · 手电筒 · 相册。点亮态用主题主色。
8
8
  export function ScanToolbar({
9
9
  flash,
10
10
  bottomInset,
11
11
  onFlash,
12
- onAlbum
12
+ onAlbum,
13
+ onClose
13
14
  }) {
14
15
  const c = useColors();
15
16
  return /*#__PURE__*/_jsxs(View, {
@@ -17,7 +18,11 @@ export function ScanToolbar({
17
18
  bottom: bottomInset + r(50)
18
19
  }],
19
20
  pointerEvents: "box-none",
20
- children: [onFlash && /*#__PURE__*/_jsx(ToolbarItem, {
21
+ children: [onClose && /*#__PURE__*/_jsx(ToolbarItem, {
22
+ icon: "undo",
23
+ label: "\u8FD4\u56DE",
24
+ onPress: onClose
25
+ }), onFlash && /*#__PURE__*/_jsx(ToolbarItem, {
21
26
  icon: flash ? 'flash-on' : 'flash-off',
22
27
  label: flash ? '已开灯' : '手电筒',
23
28
  activeColor: flash ? c.primary : undefined,
@@ -1 +1 @@
1
- {"version":3,"names":["Pressable","StyleSheet","Text","View","Icon","useColors","r","rf","fw","scanChrome","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","ScanToolbar","flash","bottomInset","onFlash","onAlbum","c","style","styles","bar","bottom","pointerEvents","children","ToolbarItem","icon","label","activeColor","primary","undefined","onPress","item","accessibilityRole","accessibilityLabel","pressed","circle","backgroundColor","borderColor","glassBorderActive","glassDisc2","glassBorder","opacity","name","size","color","white","create","position","left","right","zIndex","flexDirection","justifyContent","columnGap","width","alignItems","rowGap","height","borderRadius","borderWidth","hairlineWidth","fontSize","fontWeight","medium","toolbarLabel","textShadowColor","textShadowOffset","textShadowRadius"],"sourceRoot":"../../../src","sources":["Scanner/ScanToolbar.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Pressable","StyleSheet","Text","View","Icon","useColors","r","rf","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","item","accessibilityRole","accessibilityLabel","pressed","circle","backgroundColor","borderColor","glassBorderActive","glassDisc2","glassBorder","opacity","name","size","color","white","create","position","left","right","zIndex","flexDirection","justifyContent","columnGap","width","alignItems","rowGap","height","borderRadius","borderWidth","hairlineWidth","fontSize","fontWeight","medium","toolbarLabel","textShadowColor","textShadowOffset","textShadowRadius"],"sourceRoot":"../../../src","sources":["Scanner/ScanToolbar.tsx"],"mappings":"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","ignoreList":[]}
@@ -1,42 +1,24 @@
1
1
  "use strict";
2
2
 
3
- import { Pressable, StyleSheet, Text, View } from 'react-native';
4
- import { Icon, r, rf, fw } from '@unif/react-native-design';
3
+ import { StyleSheet, Text, View } from 'react-native';
4
+ import { r, rf, fw } from '@unif/react-native-design';
5
5
  import { scanChrome } from "./scanChrome.js";
6
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
7
- // 顶栏:关闭键 · 标题 · 尾部插槽。叠在深色相机预览之上,故文字/图标恒为白(不随主题)。
8
- // 设计稿用了毛玻璃,RN 无内建模糊,这里以半透明深色底近似(design 的 BlurLayer 需额外原生模糊库)。
6
+ import { jsx as _jsx } from "react/jsx-runtime";
7
+ // 顶栏:仅居中标题。关闭键已移到底部工具栏,与手电筒并排(见 ScanToolbar)。
8
+ // 叠在深色相机预览之上,故文字恒为白(不随主题)。
9
9
  export function ScanTopBar({
10
10
  title,
11
- topInset,
12
- onClose,
13
- trailing
11
+ topInset
14
12
  }) {
15
- return /*#__PURE__*/_jsxs(View, {
13
+ return /*#__PURE__*/_jsx(View, {
16
14
  style: [styles.bar, {
17
15
  paddingTop: topInset
18
16
  }],
19
17
  pointerEvents: "box-none",
20
- children: [/*#__PURE__*/_jsx(Pressable, {
21
- onPress: onClose,
22
- hitSlop: 8,
23
- accessibilityRole: "button",
24
- accessibilityLabel: "\u5173\u95ED",
25
- style: ({
26
- pressed
27
- }) => [styles.disc, pressed && styles.pressed],
28
- children: /*#__PURE__*/_jsx(Icon, {
29
- name: "close",
30
- size: r(20),
31
- color: scanChrome.white
32
- })
33
- }), /*#__PURE__*/_jsx(Text, {
18
+ children: /*#__PURE__*/_jsx(Text, {
34
19
  style: styles.title,
35
20
  children: title
36
- }), /*#__PURE__*/_jsx(View, {
37
- style: styles.trailing,
38
- children: trailing
39
- })]
21
+ })
40
22
  });
41
23
  }
42
24
  const styles = StyleSheet.create({
@@ -50,20 +32,7 @@ const styles = StyleSheet.create({
50
32
  paddingBottom: r(8),
51
33
  flexDirection: 'row',
52
34
  alignItems: 'center',
53
- justifyContent: 'space-between'
54
- },
55
- disc: {
56
- width: r(38),
57
- height: r(38),
58
- borderRadius: 999,
59
- alignItems: 'center',
60
- justifyContent: 'center',
61
- backgroundColor: scanChrome.glassDisc,
62
- borderWidth: StyleSheet.hairlineWidth,
63
- borderColor: scanChrome.glassBorder
64
- },
65
- pressed: {
66
- opacity: 0.6
35
+ justifyContent: 'center'
67
36
  },
68
37
  title: {
69
38
  color: scanChrome.white,
@@ -76,12 +45,6 @@ const styles = StyleSheet.create({
76
45
  height: 1
77
46
  },
78
47
  textShadowRadius: 6
79
- },
80
- trailing: {
81
- width: r(38),
82
- height: r(38),
83
- alignItems: 'center',
84
- justifyContent: 'center'
85
48
  }
86
49
  });
87
50
  //# sourceMappingURL=ScanTopBar.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Pressable","StyleSheet","Text","View","Icon","r","rf","fw","scanChrome","jsx","_jsx","jsxs","_jsxs","ScanTopBar","title","topInset","onClose","trailing","style","styles","bar","paddingTop","pointerEvents","children","onPress","hitSlop","accessibilityRole","accessibilityLabel","pressed","disc","name","size","color","white","create","position","top","left","right","zIndex","paddingHorizontal","paddingBottom","flexDirection","alignItems","justifyContent","width","height","borderRadius","backgroundColor","glassDisc","borderWidth","hairlineWidth","borderColor","glassBorder","opacity","fontSize","fontWeight","semi","letterSpacing","textShadowColor","textShadow","textShadowOffset","textShadowRadius"],"sourceRoot":"../../../src","sources":["Scanner/ScanTopBar.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["StyleSheet","Text","View","r","rf","fw","scanChrome","jsx","_jsx","ScanTopBar","title","topInset","style","styles","bar","paddingTop","pointerEvents","children","create","position","top","left","right","zIndex","paddingHorizontal","paddingBottom","flexDirection","alignItems","justifyContent","color","white","fontSize","fontWeight","semi","letterSpacing","textShadowColor","textShadow","textShadowOffset","width","height","textShadowRadius"],"sourceRoot":"../../../src","sources":["Scanner/ScanTopBar.tsx"],"mappings":";;AAAA,SAASA,UAAU,EAAEC,IAAI,EAAEC,IAAI,QAAQ,cAAc;AACrD,SAASC,CAAC,EAAEC,EAAE,EAAEC,EAAE,QAAQ,2BAA2B;AACrD,SAASC,UAAU,QAAQ,iBAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAO1C;AACA;AACA,OAAO,SAASC,UAAUA,CAAC;EAAEC,KAAK;EAAEC;AAA0B,CAAC,EAAE;EAC/D,oBACEH,IAAA,CAACN,IAAI;IAACU,KAAK,EAAE,CAACC,MAAM,CAACC,GAAG,EAAE;MAAEC,UAAU,EAAEJ;IAAS,CAAC,CAAE;IAACK,aAAa,EAAC,UAAU;IAAAC,QAAA,eAC3ET,IAAA,CAACP,IAAI;MAACW,KAAK,EAAEC,MAAM,CAACH,KAAM;MAAAO,QAAA,EAAEP;IAAK,CAAO;EAAC,CACrC,CAAC;AAEX;AAEA,MAAMG,MAAM,GAAGb,UAAU,CAACkB,MAAM,CAAC;EAC/BJ,GAAG,EAAE;IACHK,QAAQ,EAAE,UAAU;IACpBC,GAAG,EAAE,CAAC;IACNC,IAAI,EAAE,CAAC;IACPC,KAAK,EAAE,CAAC;IACRC,MAAM,EAAE,EAAE;IACVC,iBAAiB,EAAErB,CAAC,CAAC,EAAE,CAAC;IACxBsB,aAAa,EAAEtB,CAAC,CAAC,CAAC,CAAC;IACnBuB,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE;EAClB,CAAC;EACDlB,KAAK,EAAE;IACLmB,KAAK,EAAEvB,UAAU,CAACwB,KAAK;IACvBC,QAAQ,EAAE3B,EAAE,CAAC,EAAE,CAAC;IAChB4B,UAAU,EAAE3B,EAAE,CAAC4B,IAAI;IACnBC,aAAa,EAAE,GAAG;IAClBC,eAAe,EAAE7B,UAAU,CAAC8B,UAAU;IACtCC,gBAAgB,EAAE;MAAEC,KAAK,EAAE,CAAC;MAAEC,MAAM,EAAE;IAAE,CAAC;IACzCC,gBAAgB,EAAE;EACpB;AACF,CAAC,CAAC","ignoreList":[]}
@@ -2,7 +2,7 @@
2
2
 
3
3
  import { useCallback, useEffect, useRef, useState } from 'react';
4
4
  import { Linking, StyleSheet, View } from 'react-native';
5
- import { ThemeProvider, ToastHost, toast } from '@unif/react-native-design';
5
+ import { ThemeProvider, ToastHost } from '@unif/react-native-design';
6
6
  import { HmsScanView } from "../HmsScanView.js";
7
7
  import { decodeImage } from "../decodeImage.js";
8
8
  import { getCameraPermissionStatus, requestCameraPermission } from "../permissions.js";
@@ -135,7 +135,8 @@ function ScannerInner({
135
135
  const r = lastResultRef.current;
136
136
  const p = product;
137
137
  if (p && r) onConfirm?.(p, r);
138
- toast.success('已确认 · 扫描结果已填入上一级');
138
+ // 不在此 toast:确认页已展示结果,且 toast 是宿主职责(onConfirm 回调里宿主自己提示)——
139
+ // 避免重复 toast,也避免宿主导航离开后依赖 Scanner 自带 ToastHost 存活的隐患。
139
140
  reset();
140
141
  }, [product, onConfirm, reset]);
141
142
  const showChrome = phase === 'scan' || phase === 'detecting';
@@ -154,22 +155,22 @@ function ScannerInner({
154
155
  hintText: hintText
155
156
  }), phase !== 'denied' && phase !== 'init' && /*#__PURE__*/_jsx(ScanTopBar, {
156
157
  title: title,
157
- topInset: topInset,
158
- onClose: onClose
159
- }), showChrome && (showTorch || !!pickImage) && /*#__PURE__*/_jsx(ScanToolbar, {
158
+ topInset: topInset
159
+ }), showChrome && (showTorch || !!pickImage || !!onClose) && /*#__PURE__*/_jsx(ScanToolbar, {
160
160
  flash: torch,
161
161
  bottomInset: bottomInset,
162
162
  onFlash: showTorch ? () => setTorch(t => !t) : undefined,
163
- onAlbum: pickImage ? onAlbum : undefined
163
+ onAlbum: pickImage ? onAlbum : undefined,
164
+ onClose: onClose
164
165
  }), phase === 'success' && product && /*#__PURE__*/_jsx(ResultFocus, {
165
166
  product: product,
166
167
  detectMs: detectMs,
167
168
  bottomInset: bottomInset,
168
- onContinue: reset,
169
+ onRescan: reset,
169
170
  onConfirm: onConfirmPress
170
171
  }), phase === 'fail' && /*#__PURE__*/_jsx(ResultFail, {
171
172
  bottomInset: bottomInset,
172
- onRetry: reset
173
+ onRescan: reset
173
174
  }), phase === 'denied' && /*#__PURE__*/_jsx(DeniedOverlay, {
174
175
  onClose: onClose,
175
176
  onSettings: () => Linking.openSettings()
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useEffect","useRef","useState","Linking","StyleSheet","View","ThemeProvider","ToastHost","toast","HmsScanView","decodeImage","getCameraPermissionStatus","requestCameraPermission","scanChrome","Viewfinder","ScanTopBar","ScanToolbar","ResultFocus","ResultFail","DeniedOverlay","jsx","_jsx","jsxs","_jsxs","VF_SIZE","DEFAULT_HINT","Scanner","props","children","ScannerInner","title","formats","hintText","topInset","bottomInset","showTorch","onClose","resolveProduct","onConfirm","pickImage","phase","setPhase","torch","setTorch","product","setProduct","detectMs","setDetectMs","handlingRef","detectStartRef","lastResultRef","mountedRef","current","status","reset","finalize","result","resolved","name","value","barcode","Date","now","onCameraResult","results","first","onScanError","error","code","onAlbum","uri","undefined","onConfirmPress","r","p","success","showChrome","style","styles","root","absoluteFill","paused","onScanResult","size","detecting","flash","onFlash","t","onContinue","onRetry","onSettings","openSettings","create","flex","backgroundColor","cameraBg"],"sourceRoot":"../../../src","sources":["Scanner/Scanner.tsx"],"mappings":";;AAAA,SAASA,WAAW,EAAEC,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAChE,SAASC,OAAO,EAAEC,UAAU,EAAEC,IAAI,QAAQ,cAAc;AACxD,SAASC,aAAa,EAAEC,SAAS,EAAEC,KAAK,QAAQ,2BAA2B;AAC3E,SAASC,WAAW,QAAQ,mBAAgB;AAC5C,SAASC,WAAW,QAAQ,mBAAgB;AAC5C,SACEC,yBAAyB,EACzBC,uBAAuB,QAClB,mBAAgB;AAEvB,SAASC,UAAU,QAAQ,iBAAc;AACzC,SAASC,UAAU,QAAQ,iBAAc;AACzC,SAASC,UAAU,QAAQ,iBAAc;AACzC,SAASC,WAAW,QAAQ,kBAAe;AAC3C,SAASC,WAAW,QAAQ,kBAAe;AAC3C,SAASC,UAAU,QAAQ,iBAAc;AACzC,SAASC,aAAa,QAAQ,oBAAiB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAIhD,MAAMC,OAAO,GAAG,GAAG;AACnB,MAAMC,YAAY,GAAG,oBAAoB;AAiCzC;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,OAAOA,CAACC,KAAmB,EAAE;EAC3C,oBACEJ,KAAA,CAACjB,aAAa;IAAAsB,QAAA,gBACZP,IAAA,CAACQ,YAAY;MAAA,GAAKF;IAAK,CAAG,CAAC,eAC3BN,IAAA,CAACd,SAAS,IAAE,CAAC;EAAA,CACA,CAAC;AAEpB;AAEA,SAASsB,YAAYA,CAAC;EACpBC,KAAK,GAAG,KAAK;EACbC,OAAO;EACPC,QAAQ,GAAGP,YAAY;EACvBQ,QAAQ,GAAG,EAAE;EACbC,WAAW,GAAG,EAAE;EAChBC,SAAS,GAAG,IAAI;EAChBC,OAAO;EACPC,cAAc;EACdC,SAAS;EACTC;AACY,CAAC,EAAE;EACf,MAAM,CAACC,KAAK,EAAEC,QAAQ,CAAC,GAAGvC,QAAQ,CAAQ,MAAM,CAAC;EACjD,MAAM,CAACwC,KAAK,EAAEC,QAAQ,CAAC,GAAGzC,QAAQ,CAAC,KAAK,CAAC;EACzC,MAAM,CAAC0C,OAAO,EAAEC,UAAU,CAAC,GAAG3C,QAAQ,CAAqB,IAAI,CAAC;EAChE,MAAM,CAAC4C,QAAQ,EAAEC,WAAW,CAAC,GAAG7C,QAAQ,CAAC,CAAC,CAAC;EAE3C,MAAM8C,WAAW,GAAG/C,MAAM,CAAC,KAAK,CAAC;EACjC,MAAMgD,cAAc,GAAGhD,MAAM,CAAC,CAAC,CAAC;EAChC,MAAMiD,aAAa,GAAGjD,MAAM,CAAoB,IAAI,CAAC;EACrD,MAAMkD,UAAU,GAAGlD,MAAM,CAAC,IAAI,CAAC;;EAE/B;EACAD,SAAS,CAAC,MAAM;IACdmD,UAAU,CAACC,OAAO,GAAG,IAAI;IACzB,CAAC,YAAY;MACX,IAAI;QACF,IAAIC,MAAM,GAAG,MAAM1C,yBAAyB,CAAC,CAAC;QAC9C,IAAI0C,MAAM,KAAK,cAAc,IAAIA,MAAM,KAAK,QAAQ,EAAE;UACpDA,MAAM,GAAG,MAAMzC,uBAAuB,CAAC,CAAC;QAC1C;QACA,IAAI,CAACuC,UAAU,CAACC,OAAO,EAAE;QACzBX,QAAQ,CAACY,MAAM,KAAK,SAAS,GAAG,MAAM,GAAG,QAAQ,CAAC;MACpD,CAAC,CAAC,MAAM;QACN,IAAIF,UAAU,CAACC,OAAO,EAAEX,QAAQ,CAAC,MAAM,CAAC;MAC1C;IACF,CAAC,EAAE,CAAC;IACJ,OAAO,MAAM;MACXU,UAAU,CAACC,OAAO,GAAG,KAAK;IAC5B,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAEN,MAAME,KAAK,GAAGvD,WAAW,CAAC,MAAM;IAC9BiD,WAAW,CAACI,OAAO,GAAG,KAAK;IAC3BP,UAAU,CAAC,IAAI,CAAC;IAChBJ,QAAQ,CAAC,MAAM,CAAC;EAClB,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMc,QAAQ,GAAGxD,WAAW,CAC1B,MAAOyD,MAAkB,IAAK;IAC5BN,aAAa,CAACE,OAAO,GAAGI,MAAM;IAC9B,IAAI;MACF,MAAMC,QAAQ,GAAGpB,cAAc,GAC3B,MAAMA,cAAc,CAACmB,MAAM,CAAC,GAC5B;QAAEE,IAAI,EAAEF,MAAM,CAACG;MAAM,CAAC;MAC1B,IAAI,CAACR,UAAU,CAACC,OAAO,EAAE;MACzB,IAAI,CAACK,QAAQ,EAAE;QACbhB,QAAQ,CAAC,MAAM,CAAC;QAChB;MACF;MACAI,UAAU,CAAC;QAAEe,OAAO,EAAEJ,MAAM,CAACG,KAAK;QAAE,GAAGF;MAAS,CAAC,CAAC;MAClDV,WAAW,CAACc,IAAI,CAACC,GAAG,CAAC,CAAC,GAAGb,cAAc,CAACG,OAAO,CAAC;MAChDX,QAAQ,CAAC,SAAS,CAAC;IACrB,CAAC,CAAC,MAAM;MACN,IAAIU,UAAU,CAACC,OAAO,EAAEX,QAAQ,CAAC,MAAM,CAAC;IAC1C;EACF,CAAC,EACD,CAACJ,cAAc,CACjB,CAAC;EAED,MAAM0B,cAAc,GAAGhE,WAAW,CAC/BiE,OAAqB,IAAK;IACzB,IAAIxB,KAAK,KAAK,MAAM,IAAIQ,WAAW,CAACI,OAAO,EAAE;IAC7C,MAAMa,KAAK,GAAGD,OAAO,CAAC,CAAC,CAAC;IACxB,IAAI,CAACC,KAAK,EAAE;IACZjB,WAAW,CAACI,OAAO,GAAG,IAAI;IAC1BH,cAAc,CAACG,OAAO,GAAGS,IAAI,CAACC,GAAG,CAAC,CAAC;IACnCrB,QAAQ,CAAC,WAAW,CAAC;IACrB,KAAKc,QAAQ,CAACU,KAAK,CAAC;EACtB,CAAC,EACD,CAACzB,KAAK,EAAEe,QAAQ,CAClB,CAAC;EAED,MAAMW,WAAW,GAAGnE,WAAW,CAAEoE,KAAwC,IAAK;IAC5E,IAAIA,KAAK,CAACC,IAAI,KAAK,wBAAwB,EAAE3B,QAAQ,CAAC,QAAQ,CAAC;EACjE,CAAC,EAAE,EAAE,CAAC;EAEN,MAAM4B,OAAO,GAAGtE,WAAW,CAAC,YAAY;IACtC,IAAI,CAACwC,SAAS,IAAIS,WAAW,CAACI,OAAO,EAAE;IACvC,IAAI;MACF,MAAMkB,GAAG,GAAG,MAAM/B,SAAS,CAAC,CAAC;MAC7B,IAAI,CAAC+B,GAAG,IAAI,CAACnB,UAAU,CAACC,OAAO,EAAE;MACjCJ,WAAW,CAACI,OAAO,GAAG,IAAI;MAC1BH,cAAc,CAACG,OAAO,GAAGS,IAAI,CAACC,GAAG,CAAC,CAAC;MACnCrB,QAAQ,CAAC,WAAW,CAAC;MACrB,MAAMuB,OAAO,GAAG,MAAMtD,WAAW,CAAC4D,GAAG,EAAEvC,OAAO,GAAG;QAAEA;MAAQ,CAAC,GAAGwC,SAAS,CAAC;MACzE,IAAI,CAACpB,UAAU,CAACC,OAAO,EAAE;MACzB,MAAMa,KAAK,GAAGD,OAAO,CAAC,CAAC,CAAC;MACxB,IAAI,CAACC,KAAK,EAAE;QACVxB,QAAQ,CAAC,MAAM,CAAC;QAChB;MACF;MACA,MAAMc,QAAQ,CAACU,KAAK,CAAC;IACvB,CAAC,CAAC,MAAM;MACN,IAAId,UAAU,CAACC,OAAO,EAAE;QACtBJ,WAAW,CAACI,OAAO,GAAG,IAAI;QAC1BX,QAAQ,CAAC,MAAM,CAAC;MAClB;IACF;EACF,CAAC,EAAE,CAACF,SAAS,EAAER,OAAO,EAAEwB,QAAQ,CAAC,CAAC;EAElC,MAAMiB,cAAc,GAAGzE,WAAW,CAAC,MAAM;IACvC,MAAM0E,CAAC,GAAGvB,aAAa,CAACE,OAAO;IAC/B,MAAMsB,CAAC,GAAG9B,OAAO;IACjB,IAAI8B,CAAC,IAAID,CAAC,EAAEnC,SAAS,GAAGoC,CAAC,EAAED,CAAC,CAAC;IAC7BjE,KAAK,CAACmE,OAAO,CAAC,kBAAkB,CAAC;IACjCrB,KAAK,CAAC,CAAC;EACT,CAAC,EAAE,CAACV,OAAO,EAAEN,SAAS,EAAEgB,KAAK,CAAC,CAAC;EAE/B,MAAMsB,UAAU,GAAGpC,KAAK,KAAK,MAAM,IAAIA,KAAK,KAAK,WAAW;EAE5D,oBACEjB,KAAA,CAAClB,IAAI;IAACwE,KAAK,EAAEC,MAAM,CAACC,IAAK;IAAAnD,QAAA,GACtBY,KAAK,KAAK,QAAQ,IAAIA,KAAK,KAAK,MAAM,iBACrCnB,IAAA,CAACZ,WAAW;MACVoE,KAAK,EAAEzE,UAAU,CAAC4E,YAAa;MAC/BjD,OAAO,EAAEA,OAAQ;MACjBkD,MAAM,EAAEzC,KAAK,KAAK,MAAO;MACzBE,KAAK,EAAEA,KAAM;MACbwC,YAAY,EAAEnB,cAAe;MAC7BG,WAAW,EAAEA;IAAY,CAC1B,CACF,EAEAU,UAAU,iBACTvD,IAAA,CAACP,UAAU;MAACqE,IAAI,EAAE3D,OAAQ;MAAC4D,SAAS,EAAE5C,KAAK,KAAK,WAAY;MAACR,QAAQ,EAAEA;IAAS,CAAE,CACnF,EAEAQ,KAAK,KAAK,QAAQ,IAAIA,KAAK,KAAK,MAAM,iBACrCnB,IAAA,CAACN,UAAU;MAACe,KAAK,EAAEA,KAAM;MAACG,QAAQ,EAAEA,QAAS;MAACG,OAAO,EAAEA;IAAQ,CAAE,CAClE,EAEAwC,UAAU,KAAKzC,SAAS,IAAI,CAAC,CAACI,SAAS,CAAC,iBACvClB,IAAA,CAACL,WAAW;MACVqE,KAAK,EAAE3C,KAAM;MACbR,WAAW,EAAEA,WAAY;MACzBoD,OAAO,EAAEnD,SAAS,GAAG,MAAMQ,QAAQ,CAAE4C,CAAC,IAAK,CAACA,CAAC,CAAC,GAAGhB,SAAU;MAC3DF,OAAO,EAAE9B,SAAS,GAAG8B,OAAO,GAAGE;IAAU,CAC1C,CACF,EAEA/B,KAAK,KAAK,SAAS,IAAII,OAAO,iBAC7BvB,IAAA,CAACJ,WAAW;MACV2B,OAAO,EAAEA,OAAQ;MACjBE,QAAQ,EAAEA,QAAS;MACnBZ,WAAW,EAAEA,WAAY;MACzBsD,UAAU,EAAElC,KAAM;MAClBhB,SAAS,EAAEkC;IAAe,CAC3B,CACF,EAEAhC,KAAK,KAAK,MAAM,iBAAInB,IAAA,CAACH,UAAU;MAACgB,WAAW,EAAEA,WAAY;MAACuD,OAAO,EAAEnC;IAAM,CAAE,CAAC,EAE5Ed,KAAK,KAAK,QAAQ,iBACjBnB,IAAA,CAACF,aAAa;MAACiB,OAAO,EAAEA,OAAQ;MAACsD,UAAU,EAAEA,CAAA,KAAMvF,OAAO,CAACwF,YAAY,CAAC;IAAE,CAAE,CAC7E;EAAA,CACG,CAAC;AAEX;AAEA,MAAMb,MAAM,GAAG1E,UAAU,CAACwF,MAAM,CAAC;EAC/Bb,IAAI,EAAE;IAAEc,IAAI,EAAE,CAAC;IAAEC,eAAe,EAAEjF,UAAU,CAACkF;EAAS;AACxD,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","useEffect","useRef","useState","Linking","StyleSheet","View","ThemeProvider","ToastHost","HmsScanView","decodeImage","getCameraPermissionStatus","requestCameraPermission","scanChrome","Viewfinder","ScanTopBar","ScanToolbar","ResultFocus","ResultFail","DeniedOverlay","jsx","_jsx","jsxs","_jsxs","VF_SIZE","DEFAULT_HINT","Scanner","props","children","ScannerInner","title","formats","hintText","topInset","bottomInset","showTorch","onClose","resolveProduct","onConfirm","pickImage","phase","setPhase","torch","setTorch","product","setProduct","detectMs","setDetectMs","handlingRef","detectStartRef","lastResultRef","mountedRef","current","status","reset","finalize","result","resolved","name","value","barcode","Date","now","onCameraResult","results","first","onScanError","error","code","onAlbum","uri","undefined","onConfirmPress","r","p","showChrome","style","styles","root","absoluteFill","paused","onScanResult","size","detecting","flash","onFlash","t","onRescan","onSettings","openSettings","create","flex","backgroundColor","cameraBg"],"sourceRoot":"../../../src","sources":["Scanner/Scanner.tsx"],"mappings":"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","ignoreList":[]}
@@ -6,8 +6,13 @@ import { Icon, useColors, r } from '@unif/react-native-design';
6
6
  import { scanChrome } from "./scanChrome.js";
7
7
  import { ScanHint } from "./ScanHint.js";
8
8
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
+ // 取景窗圆角半径——窗口本体、白描边、脉冲准星环三者必须一致,圆角才严丝合缝。
10
+ const WINDOW_RADIUS = r(22);
11
+
9
12
  // 聚焦款取景:圆角窗 + 白描边 + 主题主色脉冲准星环 + 中心十字(design 的 scan 图标)。
10
- // 窗外暗化用「上 / 中(左+窗+右) / 下」三段布局还原(等价于设计稿 box-shadow 挖洞)。
13
+ // 窗外暗化用窗口自身一圈超大 spread 的 boxShadow(blur 0 → 硬边纯色,向四周铺满主题 scrim)。
14
+ // 这样「洞」直接带圆角、与圆角描边对齐;旧版用「上/中(左+窗+右)/下」三段挖的是矩形洞,
15
+ // 四角会漏出未暗化的实景三角、与圆角描边错位(即「框四周没 radius」的观感来源)。
11
16
  export function Viewfinder({
12
17
  size,
13
18
  detecting,
@@ -53,48 +58,44 @@ export function Viewfinder({
53
58
  reticle.stop();
54
59
  };
55
60
  }, [detecting, scale, pulse]);
56
- const scrim = {
57
- backgroundColor: c.scrim
58
- };
59
61
  return /*#__PURE__*/_jsxs(View, {
60
62
  style: styles.overlay,
61
63
  pointerEvents: "none",
62
64
  children: [/*#__PURE__*/_jsx(View, {
63
- style: [styles.scrimTop, scrim]
64
- }), /*#__PURE__*/_jsxs(View, {
65
- style: [styles.midRow, {
66
- height: windowH
65
+ style: styles.spacerTop
66
+ }), /*#__PURE__*/_jsxs(Animated.View, {
67
+ style: [styles.window, {
68
+ width: size,
69
+ height: windowH,
70
+ transform: [{
71
+ scale
72
+ }],
73
+ // spread 铺满全屏的纯色硬边阴影 = 圆角洞之外的暗化遮罩(blur 0 → 不晕开)。
74
+ boxShadow: [{
75
+ offsetX: 0,
76
+ offsetY: 0,
77
+ blurRadius: 0,
78
+ spreadDistance: 9999,
79
+ color: c.scrim
80
+ }]
67
81
  }],
68
82
  children: [/*#__PURE__*/_jsx(View, {
69
- style: [styles.scrimSide, scrim]
70
- }), /*#__PURE__*/_jsxs(Animated.View, {
71
- style: {
72
- width: size,
73
- height: windowH,
74
- transform: [{
75
- scale
76
- }]
77
- },
78
- children: [/*#__PURE__*/_jsx(View, {
79
- style: styles.windowBorder
80
- }), /*#__PURE__*/_jsx(Animated.View, {
81
- style: [styles.reticle, {
82
- borderColor: c.primary,
83
- opacity: pulse
84
- }]
85
- }), /*#__PURE__*/_jsx(View, {
86
- style: styles.crosshair,
87
- children: /*#__PURE__*/_jsx(Icon, {
88
- name: "scan",
89
- size: r(30),
90
- color: scanChrome.crosshair
91
- })
92
- })]
83
+ style: styles.windowBorder
84
+ }), /*#__PURE__*/_jsx(Animated.View, {
85
+ style: [styles.reticle, {
86
+ borderColor: c.primary,
87
+ opacity: pulse
88
+ }]
93
89
  }), /*#__PURE__*/_jsx(View, {
94
- style: [styles.scrimSide, scrim]
90
+ style: styles.crosshair,
91
+ children: /*#__PURE__*/_jsx(Icon, {
92
+ name: "scan",
93
+ size: r(30),
94
+ color: scanChrome.crosshair
95
+ })
95
96
  })]
96
97
  }), /*#__PURE__*/_jsx(View, {
97
- style: [styles.scrimBottom, scrim],
98
+ style: styles.spacerBottom,
98
99
  children: /*#__PURE__*/_jsx(ScanHint, {
99
100
  detecting: detecting,
100
101
  text: hintText
@@ -109,21 +110,18 @@ const styles = StyleSheet.create({
109
110
  left: 0,
110
111
  right: 0,
111
112
  bottom: 0,
112
- zIndex: 15
113
+ zIndex: 15,
114
+ alignItems: 'center'
113
115
  },
114
- // 上:下 = 1:1.35,使取景窗略高于屏幕中线
115
- scrimTop: {
116
+ spacerTop: {
116
117
  flex: 1
117
118
  },
118
- scrimBottom: {
119
+ spacerBottom: {
119
120
  flex: 1.35,
120
121
  alignItems: 'center'
121
122
  },
122
- midRow: {
123
- flexDirection: 'row'
124
- },
125
- scrimSide: {
126
- flex: 1
123
+ window: {
124
+ borderRadius: WINDOW_RADIUS
127
125
  },
128
126
  windowBorder: {
129
127
  position: 'absolute',
@@ -131,7 +129,7 @@ const styles = StyleSheet.create({
131
129
  left: 0,
132
130
  right: 0,
133
131
  bottom: 0,
134
- borderRadius: r(22),
132
+ borderRadius: WINDOW_RADIUS,
135
133
  borderWidth: 1.5,
136
134
  borderColor: scanChrome.windowBorder
137
135
  },
@@ -141,7 +139,7 @@ const styles = StyleSheet.create({
141
139
  left: 0,
142
140
  right: 0,
143
141
  bottom: 0,
144
- borderRadius: r(22),
142
+ borderRadius: WINDOW_RADIUS,
145
143
  borderWidth: 2
146
144
  },
147
145
  crosshair: {
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","useRef","Animated","Easing","StyleSheet","View","Icon","useColors","r","scanChrome","ScanHint","jsx","_jsx","jsxs","_jsxs","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","scrim","backgroundColor","style","styles","overlay","pointerEvents","children","scrimTop","midRow","height","scrimSide","width","transform","windowBorder","borderColor","primary","opacity","crosshair","name","color","scrimBottom","text","create","position","top","left","right","bottom","zIndex","flex","alignItems","flexDirection","borderRadius","borderWidth","marginTop","marginLeft","justifyContent"],"sourceRoot":"../../../src","sources":["Scanner/Viewfinder.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useEffect","useRef","Animated","Easing","StyleSheet","View","Icon","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","name","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":[]}
@@ -1,7 +1,8 @@
1
1
  interface ResultFailProps {
2
2
  bottomInset: number;
3
- onRetry: () => void;
3
+ /** 重扫:回到取景重新扫描。(退出扫码页是外层工具栏「返回」的事。) */
4
+ onRescan: () => void;
4
5
  }
5
- export declare function ResultFail({ bottomInset, onRetry }: ResultFailProps): import("react/jsx-runtime").JSX.Element;
6
+ export declare function ResultFail({ bottomInset, onRescan }: ResultFailProps): import("react/jsx-runtime").JSX.Element;
6
7
  export {};
7
8
  //# sourceMappingURL=ResultFail.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ResultFail.d.ts","sourceRoot":"","sources":["../../../../src/Scanner/ResultFail.tsx"],"names":[],"mappings":"AAWA,UAAU,eAAe;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAID,wBAAgB,UAAU,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,eAAe,2CAyBnE"}
1
+ {"version":3,"file":"ResultFail.d.ts","sourceRoot":"","sources":["../../../../src/Scanner/ResultFail.tsx"],"names":[],"mappings":"AAWA,UAAU,eAAe;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,uCAAuC;IACvC,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB;AAID,wBAAgB,UAAU,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,eAAe,2CAyBpE"}
@@ -4,9 +4,11 @@ interface ResultFocusProps {
4
4
  /** 识别耗时(ms),用于 "已识别 · 0.6s"。<=0 则只显示 "已识别"。 */
5
5
  detectMs: number;
6
6
  bottomInset: number;
7
- onContinue: () => void;
7
+ /** 重扫:放弃本次结果,回到取景重新扫描。(退出扫码页是外层工具栏「返回」的事。) */
8
+ onRescan: () => void;
9
+ /** 确定:确认本次结果并带回上一级。 */
8
10
  onConfirm: () => void;
9
11
  }
10
- export declare function ResultFocus({ product, detectMs, bottomInset, onContinue, onConfirm, }: ResultFocusProps): import("react/jsx-runtime").JSX.Element;
12
+ export declare function ResultFocus({ product, detectMs, bottomInset, onRescan, onConfirm, }: ResultFocusProps): import("react/jsx-runtime").JSX.Element;
11
13
  export {};
12
14
  //# sourceMappingURL=ResultFocus.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ResultFocus.d.ts","sourceRoot":"","sources":["../../../../src/Scanner/ResultFocus.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C,UAAU,gBAAgB;IACxB,OAAO,EAAE,WAAW,CAAC;IACrB,+CAA+C;IAC/C,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,SAAS,EAAE,MAAM,IAAI,CAAC;CACvB;AAGD,wBAAgB,WAAW,CAAC,EAC1B,OAAO,EACP,QAAQ,EACR,WAAW,EACX,UAAU,EACV,SAAS,GACV,EAAE,gBAAgB,2CAgElB"}
1
+ {"version":3,"file":"ResultFocus.d.ts","sourceRoot":"","sources":["../../../../src/Scanner/ResultFocus.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C,UAAU,gBAAgB;IACxB,OAAO,EAAE,WAAW,CAAC;IACrB,+CAA+C;IAC/C,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,8CAA8C;IAC9C,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,uBAAuB;IACvB,SAAS,EAAE,MAAM,IAAI,CAAC;CACvB;AAGD,wBAAgB,WAAW,CAAC,EAC1B,OAAO,EACP,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,SAAS,GACV,EAAE,gBAAgB,2CAgElB"}
@@ -5,7 +5,9 @@ interface ScanToolbarProps {
5
5
  onFlash?: () => void;
6
6
  /** 不传则不显示相册按钮(库不内置图片选择器,需宿主提供 pickImage)。 */
7
7
  onAlbum?: () => void;
8
+ /** 返回按钮(退出扫码页,与手电筒并排);不传则不显示。 */
9
+ onClose?: () => void;
8
10
  }
9
- export declare function ScanToolbar({ flash, bottomInset, onFlash, onAlbum }: ScanToolbarProps): import("react/jsx-runtime").JSX.Element;
11
+ export declare function ScanToolbar({ flash, bottomInset, onFlash, onAlbum, onClose, }: ScanToolbarProps): import("react/jsx-runtime").JSX.Element;
10
12
  export {};
11
13
  //# sourceMappingURL=ScanToolbar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ScanToolbar.d.ts","sourceRoot":"","sources":["../../../../src/Scanner/ScanToolbar.tsx"],"names":[],"mappings":"AAIA,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;CACtB;AAGD,wBAAgB,WAAW,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,gBAAgB,2CAerF"}
1
+ {"version":3,"file":"ScanToolbar.d.ts","sourceRoot":"","sources":["../../../../src/Scanner/ScanToolbar.tsx"],"names":[],"mappings":"AAIA,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,2CAgBlB"}
@@ -1,10 +1,7 @@
1
- import type { ReactNode } from 'react';
2
1
  interface ScanTopBarProps {
3
2
  title: string;
4
3
  topInset: number;
5
- onClose?: () => void;
6
- trailing?: ReactNode;
7
4
  }
8
- export declare function ScanTopBar({ title, topInset, onClose, trailing }: ScanTopBarProps): import("react/jsx-runtime").JSX.Element;
5
+ export declare function ScanTopBar({ title, topInset }: ScanTopBarProps): import("react/jsx-runtime").JSX.Element;
9
6
  export {};
10
7
  //# sourceMappingURL=ScanTopBar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ScanTopBar.d.ts","sourceRoot":"","sources":["../../../../src/Scanner/ScanTopBar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAKvC,UAAU,eAAe;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAID,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,eAAe,2CAkBjF"}
1
+ {"version":3,"file":"ScanTopBar.d.ts","sourceRoot":"","sources":["../../../../src/Scanner/ScanTopBar.tsx"],"names":[],"mappings":"AAIA,UAAU,eAAe;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAID,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,eAAe,2CAM9D"}
@@ -12,7 +12,7 @@ export interface ScannerProps {
12
12
  bottomInset?: number;
13
13
  /** 是否显示手电筒按钮,默认 true。手电由库内自管(Android 可用;iOS 为 best-effort,可在 iOS 上关掉)。 */
14
14
  showTorch?: boolean;
15
- /** 左上角关闭。 */
15
+ /** 返回回调(退出扫码页,回到上一级);按钮在底部工具栏,与手电筒并排。 */
16
16
  onClose?: () => void;
17
17
  /**
18
18
  * 扫到条码后由宿主解析商品信息(用于浮层确认卡)。
@@ -1 +1 @@
1
- {"version":3,"file":"Scanner.d.ts","sourceRoot":"","sources":["../../../../src/Scanner/Scanner.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAcvE,MAAM,WAAW,YAAY;IAC3B,qBAAqB;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sBAAsB;IACtB,OAAO,CAAC,EAAE,aAAa,EAAE,CAAC;IAC1B,eAAe;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oEAAoE;IACpE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oBAAoB;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0EAA0E;IAC1E,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,aAAa;IACb,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB;;;OAGG;IACH,cAAc,CAAC,EAAE,CACf,MAAM,EAAE,UAAU,KACf,WAAW,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;IAC9E,oCAAoC;IACpC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IAC/D;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CAC1C;AAED;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,YAAY,2CAO1C"}
1
+ {"version":3,"file":"Scanner.d.ts","sourceRoot":"","sources":["../../../../src/Scanner/Scanner.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAcvE,MAAM,WAAW,YAAY;IAC3B,qBAAqB;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sBAAsB;IACtB,OAAO,CAAC,EAAE,aAAa,EAAE,CAAC;IAC1B,eAAe;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oEAAoE;IACpE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oBAAoB;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0EAA0E;IAC1E,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,yCAAyC;IACzC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB;;;OAGG;IACH,cAAc,CAAC,EAAE,CACf,MAAM,EAAE,UAAU,KACf,WAAW,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,GAAG,SAAS,CAAC,CAAC;IAC9E,oCAAoC;IACpC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,KAAK,IAAI,CAAC;IAC/D;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CAC1C;AAED;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,KAAK,EAAE,YAAY,2CAO1C"}
@@ -1 +1 @@
1
- {"version":3,"file":"Viewfinder.d.ts","sourceRoot":"","sources":["../../../../src/Scanner/Viewfinder.tsx"],"names":[],"mappings":"AAMA,UAAU,eAAe;IACvB,kCAAkC;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,8BAA8B;IAC9B,SAAS,EAAE,OAAO,CAAC;IACnB,eAAe;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAID,wBAAgB,UAAU,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,eAAe,2CA0DxE"}
1
+ {"version":3,"file":"Viewfinder.d.ts","sourceRoot":"","sources":["../../../../src/Scanner/Viewfinder.tsx"],"names":[],"mappings":"AAMA,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,2CAkExE"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unif/react-native-hms-scan",
3
- "version": "0.3.1",
3
+ "version": "0.4.0",
4
4
  "description": "华为 HMS 统一扫码服务 React Native bridge:定制视图扫码 + 图片识别 (Scan SDK-Plus / ScanKitFrameWork,@unif 私有)",
5
5
  "main": "./lib/module/index.js",
6
6
  "types": "./lib/typescript/src/index.d.ts",
@@ -82,7 +82,7 @@
82
82
  "@types/jest": "^29.5.0",
83
83
  "@types/react": "^19.2.0",
84
84
  "@types/react-test-renderer": "^19",
85
- "@unif/react-native-design": "0.5.1",
85
+ "@unif/react-native-design": "0.8.0",
86
86
  "commitlint": "^20.5.0",
87
87
  "del-cli": "^7.0.0",
88
88
  "eslint": "^9.39.4",
@@ -108,7 +108,7 @@
108
108
  "peerDependencies": {
109
109
  "@gorhom/bottom-sheet": ">=5",
110
110
  "@sbaiahmed1/react-native-blur": ">=4",
111
- "@unif/react-native-design": ">=0.4.0",
111
+ "@unif/react-native-design": ">=0.8.0",
112
112
  "react": ">=19.0.0",
113
113
  "react-native": ">=0.80.0",
114
114
  "react-native-gesture-handler": ">=2.21.0",
@@ -11,12 +11,13 @@ import {
11
11
 
12
12
  interface ResultFailProps {
13
13
  bottomInset: number;
14
- onRetry: () => void;
14
+ /** 重扫:回到取景重新扫描。(退出扫码页是外层工具栏「返回」的事。) */
15
+ onRescan: () => void;
15
16
  }
16
17
 
17
- // 未识别失败的底部弹层:design 的 Empty(error-alert)+ Button(重新扫描)。
18
+ // 未识别失败的底部弹层:design 的 Empty(error-alert)+ Button(重扫)。
18
19
  // 聚焦款不加背景遮罩,与浮层确认卡保持一致。
19
- export function ResultFail({ bottomInset, onRetry }: ResultFailProps) {
20
+ export function ResultFail({ bottomInset, onRescan }: ResultFailProps) {
20
21
  const s = useThemedStyles(makeStyles);
21
22
  const anim = useRef(new Animated.Value(0)).current;
22
23
  useEffect(() => {
@@ -37,7 +38,7 @@ export function ResultFail({ bottomInset, onRetry }: ResultFailProps) {
37
38
  title="未识别到条码"
38
39
  desc="请将条码完整置于框内、保持平整并对准光线后重试。"
39
40
  />
40
- <Button label="重新扫描" leftIcon="retry" variant="primary" block onPress={onRetry} />
41
+ <Button label="重扫" variant="primary" block onPress={onRescan} />
41
42
  </View>
42
43
  </Animated.View>
43
44
  );
@@ -19,7 +19,9 @@ interface ResultFocusProps {
19
19
  /** 识别耗时(ms),用于 "已识别 · 0.6s"。<=0 则只显示 "已识别"。 */
20
20
  detectMs: number;
21
21
  bottomInset: number;
22
- onContinue: () => void;
22
+ /** 重扫:放弃本次结果,回到取景重新扫描。(退出扫码页是外层工具栏「返回」的事。) */
23
+ onRescan: () => void;
24
+ /** 确定:确认本次结果并带回上一级。 */
23
25
  onConfirm: () => void;
24
26
  }
25
27
 
@@ -28,7 +30,7 @@ export function ResultFocus({
28
30
  product,
29
31
  detectMs,
30
32
  bottomInset,
31
- onContinue,
33
+ onRescan,
32
34
  onConfirm,
33
35
  }: ResultFocusProps) {
34
36
  const c = useColors();
@@ -86,10 +88,10 @@ export function ResultFocus({
86
88
  )}
87
89
  </View>
88
90
 
89
- {/* 操作 */}
91
+ {/* 操作:重扫(回取景)· 确定(确认带回) */}
90
92
  <View style={styles.actions}>
91
- <Button label="继续扫描" variant="secondary" onPress={onContinue} style={styles.btn} />
92
- <Button label="确认" variant="primary" onPress={onConfirm} style={styles.btn} />
93
+ <Button label="重扫" variant="secondary" onPress={onRescan} style={styles.btn} />
94
+ <Button label="确定" variant="primary" onPress={onConfirm} style={styles.btn} />
93
95
  </View>
94
96
  </Card>
95
97
  </Animated.View>
@@ -9,13 +9,22 @@ interface ScanToolbarProps {
9
9
  onFlash?: () => void;
10
10
  /** 不传则不显示相册按钮(库不内置图片选择器,需宿主提供 pickImage)。 */
11
11
  onAlbum?: () => void;
12
+ /** 返回按钮(退出扫码页,与手电筒并排);不传则不显示。 */
13
+ onClose?: () => void;
12
14
  }
13
15
 
14
- // 底部工具栏:手电筒 · 相册(按定稿,去掉了搜索 / 输入码)。点亮态用主题主色。
15
- export function ScanToolbar({ flash, bottomInset, onFlash, onAlbum }: ScanToolbarProps) {
16
+ // 底部工具栏:返回 · 手电筒 · 相册。点亮态用主题主色。
17
+ export function ScanToolbar({
18
+ flash,
19
+ bottomInset,
20
+ onFlash,
21
+ onAlbum,
22
+ onClose,
23
+ }: ScanToolbarProps) {
16
24
  const c = useColors();
17
25
  return (
18
26
  <View style={[styles.bar, { bottom: bottomInset + r(50) }]} pointerEvents="box-none">
27
+ {onClose && <ToolbarItem icon="undo" label="返回" onPress={onClose} />}
19
28
  {onFlash && (
20
29
  <ToolbarItem
21
30
  icon={flash ? 'flash-on' : 'flash-off'}
@@ -1,33 +1,18 @@
1
- import type { ReactNode } from 'react';
2
- import { Pressable, StyleSheet, Text, View } from 'react-native';
3
- import { Icon, r, rf, fw } from '@unif/react-native-design';
1
+ import { StyleSheet, Text, View } from 'react-native';
2
+ import { r, rf, fw } from '@unif/react-native-design';
4
3
  import { scanChrome } from './scanChrome';
5
4
 
6
5
  interface ScanTopBarProps {
7
6
  title: string;
8
7
  topInset: number;
9
- onClose?: () => void;
10
- trailing?: ReactNode;
11
8
  }
12
9
 
13
- // 顶栏:关闭键 · 标题 · 尾部插槽。叠在深色相机预览之上,故文字/图标恒为白(不随主题)。
14
- // 设计稿用了毛玻璃,RN 无内建模糊,这里以半透明深色底近似(design 的 BlurLayer 需额外原生模糊库)。
15
- export function ScanTopBar({ title, topInset, onClose, trailing }: ScanTopBarProps) {
10
+ // 顶栏:仅居中标题。关闭键已移到底部工具栏,与手电筒并排(见 ScanToolbar)。
11
+ // 叠在深色相机预览之上,故文字恒为白(不随主题)。
12
+ export function ScanTopBar({ title, topInset }: ScanTopBarProps) {
16
13
  return (
17
14
  <View style={[styles.bar, { paddingTop: topInset }]} pointerEvents="box-none">
18
- <Pressable
19
- onPress={onClose}
20
- hitSlop={8}
21
- accessibilityRole="button"
22
- accessibilityLabel="关闭"
23
- style={({ pressed }) => [styles.disc, pressed && styles.pressed]}
24
- >
25
- <Icon name="close" size={r(20)} color={scanChrome.white} />
26
- </Pressable>
27
-
28
15
  <Text style={styles.title}>{title}</Text>
29
-
30
- <View style={styles.trailing}>{trailing}</View>
31
16
  </View>
32
17
  );
33
18
  }
@@ -43,19 +28,8 @@ const styles = StyleSheet.create({
43
28
  paddingBottom: r(8),
44
29
  flexDirection: 'row',
45
30
  alignItems: 'center',
46
- justifyContent: 'space-between',
47
- },
48
- disc: {
49
- width: r(38),
50
- height: r(38),
51
- borderRadius: 999,
52
- alignItems: 'center',
53
31
  justifyContent: 'center',
54
- backgroundColor: scanChrome.glassDisc,
55
- borderWidth: StyleSheet.hairlineWidth,
56
- borderColor: scanChrome.glassBorder,
57
32
  },
58
- pressed: { opacity: 0.6 },
59
33
  title: {
60
34
  color: scanChrome.white,
61
35
  fontSize: rf(16),
@@ -65,10 +39,4 @@ const styles = StyleSheet.create({
65
39
  textShadowOffset: { width: 0, height: 1 },
66
40
  textShadowRadius: 6,
67
41
  },
68
- trailing: {
69
- width: r(38),
70
- height: r(38),
71
- alignItems: 'center',
72
- justifyContent: 'center',
73
- },
74
42
  });
@@ -1,6 +1,6 @@
1
1
  import { useCallback, useEffect, useRef, useState } from 'react';
2
2
  import { Linking, StyleSheet, View } from 'react-native';
3
- import { ThemeProvider, ToastHost, toast } from '@unif/react-native-design';
3
+ import { ThemeProvider, ToastHost } from '@unif/react-native-design';
4
4
  import { HmsScanView } from '../HmsScanView';
5
5
  import { decodeImage } from '../decodeImage';
6
6
  import {
@@ -34,7 +34,7 @@ export interface ScannerProps {
34
34
  bottomInset?: number;
35
35
  /** 是否显示手电筒按钮,默认 true。手电由库内自管(Android 可用;iOS 为 best-effort,可在 iOS 上关掉)。 */
36
36
  showTorch?: boolean;
37
- /** 左上角关闭。 */
37
+ /** 返回回调(退出扫码页,回到上一级);按钮在底部工具栏,与手电筒并排。 */
38
38
  onClose?: () => void;
39
39
  /**
40
40
  * 扫到条码后由宿主解析商品信息(用于浮层确认卡)。
@@ -181,7 +181,8 @@ function ScannerInner({
181
181
  const r = lastResultRef.current;
182
182
  const p = product;
183
183
  if (p && r) onConfirm?.(p, r);
184
- toast.success('已确认 · 扫描结果已填入上一级');
184
+ // 不在此 toast:确认页已展示结果,且 toast 是宿主职责(onConfirm 回调里宿主自己提示)——
185
+ // 避免重复 toast,也避免宿主导航离开后依赖 Scanner 自带 ToastHost 存活的隐患。
185
186
  reset();
186
187
  }, [product, onConfirm, reset]);
187
188
 
@@ -205,15 +206,16 @@ function ScannerInner({
205
206
  )}
206
207
 
207
208
  {phase !== 'denied' && phase !== 'init' && (
208
- <ScanTopBar title={title} topInset={topInset} onClose={onClose} />
209
+ <ScanTopBar title={title} topInset={topInset} />
209
210
  )}
210
211
 
211
- {showChrome && (showTorch || !!pickImage) && (
212
+ {showChrome && (showTorch || !!pickImage || !!onClose) && (
212
213
  <ScanToolbar
213
214
  flash={torch}
214
215
  bottomInset={bottomInset}
215
216
  onFlash={showTorch ? () => setTorch((t) => !t) : undefined}
216
217
  onAlbum={pickImage ? onAlbum : undefined}
218
+ onClose={onClose}
217
219
  />
218
220
  )}
219
221
 
@@ -222,12 +224,12 @@ function ScannerInner({
222
224
  product={product}
223
225
  detectMs={detectMs}
224
226
  bottomInset={bottomInset}
225
- onContinue={reset}
227
+ onRescan={reset}
226
228
  onConfirm={onConfirmPress}
227
229
  />
228
230
  )}
229
231
 
230
- {phase === 'fail' && <ResultFail bottomInset={bottomInset} onRetry={reset} />}
232
+ {phase === 'fail' && <ResultFail bottomInset={bottomInset} onRescan={reset} />}
231
233
 
232
234
  {phase === 'denied' && (
233
235
  <DeniedOverlay onClose={onClose} onSettings={() => Linking.openSettings()} />
@@ -13,8 +13,13 @@ interface ViewfinderProps {
13
13
  hintText: string;
14
14
  }
15
15
 
16
+ // 取景窗圆角半径——窗口本体、白描边、脉冲准星环三者必须一致,圆角才严丝合缝。
17
+ const WINDOW_RADIUS = r(22);
18
+
16
19
  // 聚焦款取景:圆角窗 + 白描边 + 主题主色脉冲准星环 + 中心十字(design 的 scan 图标)。
17
- // 窗外暗化用「上 / 中(左+窗+右) / 下」三段布局还原(等价于设计稿 box-shadow 挖洞)。
20
+ // 窗外暗化用窗口自身一圈超大 spread 的 boxShadow(blur 0 → 硬边纯色,向四周铺满主题 scrim)。
21
+ // 这样「洞」直接带圆角、与圆角描边对齐;旧版用「上/中(左+窗+右)/下」三段挖的是矩形洞,
22
+ // 四角会漏出未暗化的实景三角、与圆角描边错位(即「框四周没 radius」的观感来源)。
18
23
  export function Viewfinder({ size, detecting, hintText }: ViewfinderProps) {
19
24
  const c = useColors();
20
25
  const windowH = Math.round(size * 0.82);
@@ -48,27 +53,35 @@ export function Viewfinder({ size, detecting, hintText }: ViewfinderProps) {
48
53
  };
49
54
  }, [detecting, scale, pulse]);
50
55
 
51
- const scrim = { backgroundColor: c.scrim };
52
-
53
56
  return (
54
57
  <View style={styles.overlay} pointerEvents="none">
55
- <View style={[styles.scrimTop, scrim]} />
58
+ {/* 上:下 = 1:1.35,使取景窗略高于屏幕中线 */}
59
+ <View style={styles.spacerTop} />
56
60
 
57
- <View style={[styles.midRow, { height: windowH }]}>
58
- <View style={[styles.scrimSide, scrim]} />
59
- <Animated.View style={{ width: size, height: windowH, transform: [{ scale }] }}>
60
- <View style={styles.windowBorder} />
61
- <Animated.View
62
- style={[styles.reticle, { borderColor: c.primary, opacity: pulse }]}
63
- />
64
- <View style={styles.crosshair}>
65
- <Icon name="scan" size={r(30)} color={scanChrome.crosshair} />
66
- </View>
67
- </Animated.View>
68
- <View style={[styles.scrimSide, scrim]} />
69
- </View>
61
+ <Animated.View
62
+ style={[
63
+ styles.window,
64
+ {
65
+ width: size,
66
+ height: windowH,
67
+ transform: [{ scale }],
68
+ // spread 铺满全屏的纯色硬边阴影 = 圆角洞之外的暗化遮罩(blur 0 → 不晕开)。
69
+ boxShadow: [
70
+ { offsetX: 0, offsetY: 0, blurRadius: 0, spreadDistance: 9999, color: c.scrim },
71
+ ],
72
+ },
73
+ ]}
74
+ >
75
+ <View style={styles.windowBorder} />
76
+ <Animated.View
77
+ style={[styles.reticle, { borderColor: c.primary, opacity: pulse }]}
78
+ />
79
+ <View style={styles.crosshair}>
80
+ <Icon name="scan" size={r(30)} color={scanChrome.crosshair} />
81
+ </View>
82
+ </Animated.View>
70
83
 
71
- <View style={[styles.scrimBottom, scrim]}>
84
+ <View style={styles.spacerBottom}>
72
85
  <ScanHint detecting={detecting} text={hintText} />
73
86
  </View>
74
87
  </View>
@@ -76,19 +89,25 @@ export function Viewfinder({ size, detecting, hintText }: ViewfinderProps) {
76
89
  }
77
90
 
78
91
  const styles = StyleSheet.create({
79
- overlay: { position: 'absolute', top: 0, left: 0, right: 0, bottom: 0, zIndex: 15 },
80
- // 上:下 = 1:1.35,使取景窗略高于屏幕中线
81
- scrimTop: { flex: 1 },
82
- scrimBottom: { flex: 1.35, alignItems: 'center' },
83
- midRow: { flexDirection: 'row' },
84
- scrimSide: { flex: 1 },
92
+ overlay: {
93
+ position: 'absolute',
94
+ top: 0,
95
+ left: 0,
96
+ right: 0,
97
+ bottom: 0,
98
+ zIndex: 15,
99
+ alignItems: 'center',
100
+ },
101
+ spacerTop: { flex: 1 },
102
+ spacerBottom: { flex: 1.35, alignItems: 'center' },
103
+ window: { borderRadius: WINDOW_RADIUS },
85
104
  windowBorder: {
86
105
  position: 'absolute',
87
106
  top: 0,
88
107
  left: 0,
89
108
  right: 0,
90
109
  bottom: 0,
91
- borderRadius: r(22),
110
+ borderRadius: WINDOW_RADIUS,
92
111
  borderWidth: 1.5,
93
112
  borderColor: scanChrome.windowBorder,
94
113
  },
@@ -98,7 +117,7 @@ const styles = StyleSheet.create({
98
117
  left: 0,
99
118
  right: 0,
100
119
  bottom: 0,
101
- borderRadius: r(22),
120
+ borderRadius: WINDOW_RADIUS,
102
121
  borderWidth: 2,
103
122
  },
104
123
  crosshair: {