@unif/react-native-hms-scan 0.1.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/LICENSE +21 -0
- package/README.md +149 -0
- package/ReactNativeHmsScan.podspec +30 -0
- package/android/build.gradle +79 -0
- package/android/consumer-rules.pro +13 -0
- package/android/src/main/AndroidManifest.xml +23 -0
- package/android/src/main/java/com/unif/reactnativehmsscan/HmsScanModule.kt +192 -0
- package/android/src/main/java/com/unif/reactnativehmsscan/HmsScanResultMapper.kt +145 -0
- package/android/src/main/java/com/unif/reactnativehmsscan/HmsScanView.kt +257 -0
- package/android/src/main/java/com/unif/reactnativehmsscan/HmsScanViewManager.kt +66 -0
- package/android/src/main/java/com/unif/reactnativehmsscan/ReactNativeHmsScanPackage.kt +49 -0
- package/ios/HmsScanModule.h +20 -0
- package/ios/HmsScanModule.mm +161 -0
- package/ios/HmsScanResultMapper.h +45 -0
- package/ios/HmsScanResultMapper.mm +297 -0
- package/ios/HmsScanView.h +24 -0
- package/ios/HmsScanView.mm +322 -0
- package/lib/module/HmsScanView.js +43 -0
- package/lib/module/HmsScanView.js.map +1 -0
- package/lib/module/HmsScanViewNativeComponent.ts +44 -0
- package/lib/module/NativeHmsScan.js +11 -0
- package/lib/module/NativeHmsScan.js.map +1 -0
- package/lib/module/Scanner/DeniedOverlay.js +60 -0
- package/lib/module/Scanner/DeniedOverlay.js.map +1 -0
- package/lib/module/Scanner/ResultFail.js +79 -0
- package/lib/module/Scanner/ResultFail.js.map +1 -0
- package/lib/module/Scanner/ResultFocus.js +174 -0
- package/lib/module/Scanner/ResultFocus.js.map +1 -0
- package/lib/module/Scanner/ScanHint.js +44 -0
- package/lib/module/Scanner/ScanHint.js.map +1 -0
- package/lib/module/Scanner/ScanToolbar.js +103 -0
- package/lib/module/Scanner/ScanToolbar.js.map +1 -0
- package/lib/module/Scanner/ScanTopBar.js +87 -0
- package/lib/module/Scanner/ScanTopBar.js.map +1 -0
- package/lib/module/Scanner/Scanner.js +184 -0
- package/lib/module/Scanner/Scanner.js.map +1 -0
- package/lib/module/Scanner/Viewfinder.js +159 -0
- package/lib/module/Scanner/Viewfinder.js.map +1 -0
- package/lib/module/Scanner/scanChrome.js +23 -0
- package/lib/module/Scanner/scanChrome.js.map +1 -0
- package/lib/module/decodeImage.js +32 -0
- package/lib/module/decodeImage.js.map +1 -0
- package/lib/module/format.js +66 -0
- package/lib/module/format.js.map +1 -0
- package/lib/module/index.js +21 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/mock.js +30 -0
- package/lib/module/mock.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/module/permissions.js +28 -0
- package/lib/module/permissions.js.map +1 -0
- package/lib/module/types.js +46 -0
- package/lib/module/types.js.map +1 -0
- package/lib/typescript/jest.setup.d.ts +1 -0
- package/lib/typescript/jest.setup.d.ts.map +1 -0
- package/lib/typescript/package.json +1 -0
- package/lib/typescript/src/HmsScanView.d.ts +36 -0
- package/lib/typescript/src/HmsScanView.d.ts.map +1 -0
- package/lib/typescript/src/HmsScanViewNativeComponent.d.ts +32 -0
- package/lib/typescript/src/HmsScanViewNativeComponent.d.ts.map +1 -0
- package/lib/typescript/src/NativeHmsScan.d.ts +17 -0
- package/lib/typescript/src/NativeHmsScan.d.ts.map +1 -0
- package/lib/typescript/src/Scanner/DeniedOverlay.d.ts +7 -0
- package/lib/typescript/src/Scanner/DeniedOverlay.d.ts.map +1 -0
- package/lib/typescript/src/Scanner/ResultFail.d.ts +7 -0
- package/lib/typescript/src/Scanner/ResultFail.d.ts.map +1 -0
- package/lib/typescript/src/Scanner/ResultFocus.d.ts +12 -0
- package/lib/typescript/src/Scanner/ResultFocus.d.ts.map +1 -0
- package/lib/typescript/src/Scanner/ScanHint.d.ts +8 -0
- package/lib/typescript/src/Scanner/ScanHint.d.ts.map +1 -0
- package/lib/typescript/src/Scanner/ScanToolbar.d.ts +9 -0
- package/lib/typescript/src/Scanner/ScanToolbar.d.ts.map +1 -0
- package/lib/typescript/src/Scanner/ScanTopBar.d.ts +10 -0
- package/lib/typescript/src/Scanner/ScanTopBar.d.ts.map +1 -0
- package/lib/typescript/src/Scanner/Scanner.d.ts +34 -0
- package/lib/typescript/src/Scanner/Scanner.d.ts.map +1 -0
- package/lib/typescript/src/Scanner/Viewfinder.d.ts +11 -0
- package/lib/typescript/src/Scanner/Viewfinder.d.ts.map +1 -0
- package/lib/typescript/src/Scanner/scanChrome.d.ts +19 -0
- package/lib/typescript/src/Scanner/scanChrome.d.ts.map +1 -0
- package/lib/typescript/src/decodeImage.d.ts +12 -0
- package/lib/typescript/src/decodeImage.d.ts.map +1 -0
- package/lib/typescript/src/format.d.ts +13 -0
- package/lib/typescript/src/format.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +10 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/lib/typescript/src/mock.d.ts +12 -0
- package/lib/typescript/src/mock.d.ts.map +1 -0
- package/lib/typescript/src/permissions.d.ts +9 -0
- package/lib/typescript/src/permissions.d.ts.map +1 -0
- package/lib/typescript/src/types.d.ts +62 -0
- package/lib/typescript/src/types.d.ts.map +1 -0
- package/package.json +174 -0
- package/src/HmsScanView.tsx +87 -0
- package/src/HmsScanViewNativeComponent.ts +44 -0
- package/src/NativeHmsScan.ts +24 -0
- package/src/Scanner/DeniedOverlay.tsx +59 -0
- package/src/Scanner/ResultFail.tsx +71 -0
- package/src/Scanner/ResultFocus.tsx +118 -0
- package/src/Scanner/ScanHint.tsx +38 -0
- package/src/Scanner/ScanToolbar.tsx +93 -0
- package/src/Scanner/ScanTopBar.tsx +74 -0
- package/src/Scanner/Scanner.tsx +238 -0
- package/src/Scanner/Viewfinder.tsx +115 -0
- package/src/Scanner/scanChrome.ts +20 -0
- package/src/decodeImage.ts +36 -0
- package/src/format.ts +93 -0
- package/src/index.tsx +35 -0
- package/src/mock.ts +43 -0
- package/src/permissions.ts +27 -0
- package/src/types.ts +138 -0
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { ViewProps } from 'react-native';
|
|
2
|
+
import type {
|
|
3
|
+
DirectEventHandler,
|
|
4
|
+
WithDefault,
|
|
5
|
+
} from 'react-native/Libraries/Types/CodegenTypes';
|
|
6
|
+
import codegenNativeComponent from 'react-native/Libraries/Utilities/codegenNativeComponent';
|
|
7
|
+
|
|
8
|
+
// RN codegen Fabric 组件规范(注册名 "HmsScanView")。
|
|
9
|
+
// 事件 payload 都用基础类型 / 单字符串,绕开 codegen 对复杂事件结构的限制:
|
|
10
|
+
// 扫码结果以 JSON 字符串回传(由 src/HmsScanView.tsx 解析成 ScanResult[])。
|
|
11
|
+
|
|
12
|
+
type ScanResultEvent = Readonly<{
|
|
13
|
+
/** JSON 编码的 ScanResult[]。 */
|
|
14
|
+
resultsJson: string;
|
|
15
|
+
}>;
|
|
16
|
+
|
|
17
|
+
type ScanErrorEvent = Readonly<{
|
|
18
|
+
code: string;
|
|
19
|
+
message: string;
|
|
20
|
+
}>;
|
|
21
|
+
|
|
22
|
+
type TorchStatusEvent = Readonly<{
|
|
23
|
+
/** 环境是否暗到建议显示手电按钮(Android OnLightVisibleCallBack)。 */
|
|
24
|
+
available: boolean;
|
|
25
|
+
/** 手电当前是否点亮。 */
|
|
26
|
+
on: boolean;
|
|
27
|
+
}>;
|
|
28
|
+
|
|
29
|
+
export interface NativeProps extends ViewProps {
|
|
30
|
+
/** 限定码制(逗号分隔的 BarcodeFormat),空串 = 全部。 */
|
|
31
|
+
formatsCsv?: WithDefault<string, ''>;
|
|
32
|
+
/** 连续扫码(命中后继续,不自动停)。 */
|
|
33
|
+
continuous?: WithDefault<boolean, true>;
|
|
34
|
+
/** 暂停/恢复扫码(命中后想停在结果卡时用)。 */
|
|
35
|
+
paused?: WithDefault<boolean, false>;
|
|
36
|
+
/** 手电筒(Android 直接控制;iOS 走 AVCaptureDevice 尽力补)。 */
|
|
37
|
+
torch?: WithDefault<boolean, false>;
|
|
38
|
+
|
|
39
|
+
onScanResult?: DirectEventHandler<ScanResultEvent>;
|
|
40
|
+
onScanError?: DirectEventHandler<ScanErrorEvent>;
|
|
41
|
+
onTorchStatus?: DirectEventHandler<TorchStatusEvent>;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export default codegenNativeComponent<NativeProps>('HmsScanView');
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { TurboModuleRegistry } from 'react-native';
|
|
4
|
+
|
|
5
|
+
// RN codegen 规范(宿主 App build 时生成 NativeHmsScanSpec)。
|
|
6
|
+
// 注:为规避 codegen 对"对象数组 / 字符串字面量联合"的类型限制,
|
|
7
|
+
// decodeImage 返回 JSON 编码的 ScanResult[](由 src/format.ts 解析回强类型),
|
|
8
|
+
// 权限状态返回字符串(由 src/permissions.ts 归一)。
|
|
9
|
+
|
|
10
|
+
export default TurboModuleRegistry.getEnforcing('HmsScan');
|
|
11
|
+
//# sourceMappingURL=NativeHmsScan.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../src","sources":["NativeHmsScan.ts"],"mappings":";;AACA,SAASA,mBAAmB,QAAQ,cAAc;;AAElD;AACA;AACA;AACA;;AAiBA,eAAeA,mBAAmB,CAACC,YAAY,CAAO,SAAS,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { StyleSheet, View } from 'react-native';
|
|
4
|
+
import { Button, Empty, useThemedStyles, r } from '@unif/react-native-design';
|
|
5
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
6
|
+
// 相机权限未授权态:无相机可显示,故用主题背景的全屏空态(与 react-native-camera 的 NoPermission 一致)。
|
|
7
|
+
export function DeniedOverlay({
|
|
8
|
+
onClose,
|
|
9
|
+
onSettings
|
|
10
|
+
}) {
|
|
11
|
+
const s = useThemedStyles(makeStyles);
|
|
12
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
13
|
+
style: s.overlay,
|
|
14
|
+
children: [/*#__PURE__*/_jsx(Empty, {
|
|
15
|
+
icon: "permission-denied",
|
|
16
|
+
title: "\u9700\u8981\u76F8\u673A\u6743\u9650",
|
|
17
|
+
desc: "\u5F00\u542F\u76F8\u673A\u540E\uFF0C\u624D\u80FD\u626B\u63CF\u5546\u54C1\u6761\u7801\u4E0E\u95E8\u5E97\u4E8C\u7EF4\u7801\u3002\u8BF7\u524D\u5F80\u7CFB\u7EDF\u8BBE\u7F6E\u6388\u6743\u3002"
|
|
18
|
+
}), /*#__PURE__*/_jsxs(View, {
|
|
19
|
+
style: styles.row,
|
|
20
|
+
children: [onClose && /*#__PURE__*/_jsx(Button, {
|
|
21
|
+
label: "\u53D6\u6D88",
|
|
22
|
+
variant: "ghost",
|
|
23
|
+
onPress: onClose,
|
|
24
|
+
style: styles.btn
|
|
25
|
+
}), /*#__PURE__*/_jsx(Button, {
|
|
26
|
+
label: "\u53BB\u8BBE\u7F6E\u5F00\u542F",
|
|
27
|
+
variant: "primary",
|
|
28
|
+
leftIcon: "settings",
|
|
29
|
+
onPress: onSettings,
|
|
30
|
+
style: styles.btn
|
|
31
|
+
})]
|
|
32
|
+
})]
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
const styles = StyleSheet.create({
|
|
36
|
+
row: {
|
|
37
|
+
flexDirection: 'row',
|
|
38
|
+
columnGap: r(12),
|
|
39
|
+
marginTop: r(8)
|
|
40
|
+
},
|
|
41
|
+
btn: {
|
|
42
|
+
flex: 1
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
const makeStyles = c => StyleSheet.create({
|
|
46
|
+
overlay: {
|
|
47
|
+
position: 'absolute',
|
|
48
|
+
top: 0,
|
|
49
|
+
left: 0,
|
|
50
|
+
right: 0,
|
|
51
|
+
bottom: 0,
|
|
52
|
+
zIndex: 40,
|
|
53
|
+
backgroundColor: c.background,
|
|
54
|
+
alignItems: 'center',
|
|
55
|
+
justifyContent: 'center',
|
|
56
|
+
paddingHorizontal: r(40),
|
|
57
|
+
rowGap: r(8)
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
//# sourceMappingURL=DeniedOverlay.js.map
|
|
@@ -0,0 +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","onPress","btn","leftIcon","create","flexDirection","columnGap","marginTop","flex","c","position","top","left","right","bottom","zIndex","backgroundColor","background","alignItems","justifyContent","paddingHorizontal","rowGap"],"sourceRoot":"../../../src","sources":["Scanner/DeniedOverlay.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;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,EAAC,mBAAmB;MACxBC,KAAK,EAAC,sCAAQ;MACdC,IAAI,EAAC;IAAiC,CACvC,CAAC,eACFX,KAAA,CAACR,IAAI;MAACc,KAAK,EAAEM,MAAM,CAACC,GAAI;MAAAL,QAAA,GACrBN,OAAO,iBAAIJ,IAAA,CAACL,MAAM;QAACqB,KAAK,EAAC,cAAI;QAACC,OAAO,EAAC,OAAO;QAACC,OAAO,EAAEd,OAAQ;QAACI,KAAK,EAAEM,MAAM,CAACK;MAAI,CAAE,CAAC,eACtFnB,IAAA,CAACL,MAAM;QACLqB,KAAK,EAAC,gCAAO;QACbC,OAAO,EAAC,SAAS;QACjBG,QAAQ,EAAC,UAAU;QACnBF,OAAO,EAAEb,UAAW;QACpBG,KAAK,EAAEM,MAAM,CAACK;MAAI,CACnB,CAAC;IAAA,CACE,CAAC;EAAA,CACH,CAAC;AAEX;AAEA,MAAML,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,CAAC;EAChEqB,GAAG,EAAE;IAAEM,IAAI,EAAE;EAAE;AACjB,CAAC,CAAC;AAEF,MAAMlB,UAAU,GAAImB,CAAc,IAChCjC,UAAU,CAAC4B,MAAM,CAAC;EAChBZ,OAAO,EAAE;IACPkB,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,EAAEvC,CAAC,CAAC,EAAE,CAAC;IACxBwC,MAAM,EAAExC,CAAC,CAAC,CAAC;EACb;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { useEffect, useRef } from 'react';
|
|
4
|
+
import { Animated, StyleSheet, View } from 'react-native';
|
|
5
|
+
import { Button, Empty, useThemedStyles, r } from '@unif/react-native-design';
|
|
6
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
7
|
+
// 未识别失败的底部弹层:design 的 Empty(error-alert)+ Button(重新扫描)。
|
|
8
|
+
// 聚焦款不加背景遮罩,与浮层确认卡保持一致。
|
|
9
|
+
export function ResultFail({
|
|
10
|
+
bottomInset,
|
|
11
|
+
onRetry
|
|
12
|
+
}) {
|
|
13
|
+
const s = useThemedStyles(makeStyles);
|
|
14
|
+
const anim = useRef(new Animated.Value(0)).current;
|
|
15
|
+
useEffect(() => {
|
|
16
|
+
Animated.timing(anim, {
|
|
17
|
+
toValue: 1,
|
|
18
|
+
duration: 320,
|
|
19
|
+
useNativeDriver: true
|
|
20
|
+
}).start();
|
|
21
|
+
}, [anim]);
|
|
22
|
+
return /*#__PURE__*/_jsxs(Animated.View, {
|
|
23
|
+
style: [s.sheet, {
|
|
24
|
+
transform: [{
|
|
25
|
+
translateY: anim.interpolate({
|
|
26
|
+
inputRange: [0, 1],
|
|
27
|
+
outputRange: [r(320), 0]
|
|
28
|
+
})
|
|
29
|
+
}]
|
|
30
|
+
}],
|
|
31
|
+
children: [/*#__PURE__*/_jsx(View, {
|
|
32
|
+
style: s.grabber
|
|
33
|
+
}), /*#__PURE__*/_jsxs(View, {
|
|
34
|
+
style: [styles.inner, {
|
|
35
|
+
paddingBottom: bottomInset + r(14)
|
|
36
|
+
}],
|
|
37
|
+
children: [/*#__PURE__*/_jsx(Empty, {
|
|
38
|
+
icon: "error-alert",
|
|
39
|
+
title: "\u672A\u8BC6\u522B\u5230\u6761\u7801",
|
|
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
|
+
}), /*#__PURE__*/_jsx(Button, {
|
|
42
|
+
label: "\u91CD\u65B0\u626B\u63CF",
|
|
43
|
+
leftIcon: "retry",
|
|
44
|
+
variant: "primary",
|
|
45
|
+
block: true,
|
|
46
|
+
onPress: onRetry
|
|
47
|
+
})]
|
|
48
|
+
})]
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
const styles = StyleSheet.create({
|
|
52
|
+
inner: {
|
|
53
|
+
paddingHorizontal: r(18),
|
|
54
|
+
paddingTop: r(8),
|
|
55
|
+
rowGap: r(16)
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
const makeStyles = (c, shadow) => StyleSheet.create({
|
|
59
|
+
sheet: {
|
|
60
|
+
position: 'absolute',
|
|
61
|
+
left: 0,
|
|
62
|
+
right: 0,
|
|
63
|
+
bottom: 0,
|
|
64
|
+
zIndex: 50,
|
|
65
|
+
backgroundColor: c.surface,
|
|
66
|
+
borderTopLeftRadius: r(20),
|
|
67
|
+
borderTopRightRadius: r(20),
|
|
68
|
+
paddingTop: r(10),
|
|
69
|
+
...shadow.floating
|
|
70
|
+
},
|
|
71
|
+
grabber: {
|
|
72
|
+
width: r(40),
|
|
73
|
+
height: r(4),
|
|
74
|
+
borderRadius: 999,
|
|
75
|
+
backgroundColor: c.surfaceContainerHighest,
|
|
76
|
+
alignSelf: 'center'
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
//# sourceMappingURL=ResultFail.js.map
|
|
@@ -0,0 +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":[]}
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { useEffect, useRef } from 'react';
|
|
4
|
+
import { Animated, StyleSheet, Text, View } from 'react-native';
|
|
5
|
+
import { Avatar, Button, Card, StatusDot, useColors, useThemedStyles, r, rf, fw, fontMono } from '@unif/react-native-design';
|
|
6
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
7
|
+
// 聚焦款"浮层确认卡":design Card + 2px 主色描边,悬浮在相机之上(无遮罩)。
|
|
8
|
+
export function ResultFocus({
|
|
9
|
+
product,
|
|
10
|
+
detectMs,
|
|
11
|
+
bottomInset,
|
|
12
|
+
onContinue,
|
|
13
|
+
onConfirm
|
|
14
|
+
}) {
|
|
15
|
+
const c = useColors();
|
|
16
|
+
const s = useThemedStyles(makeStyles);
|
|
17
|
+
const anim = useRef(new Animated.Value(0)).current;
|
|
18
|
+
useEffect(() => {
|
|
19
|
+
Animated.timing(anim, {
|
|
20
|
+
toValue: 1,
|
|
21
|
+
duration: 280,
|
|
22
|
+
useNativeDriver: true
|
|
23
|
+
}).start();
|
|
24
|
+
}, [anim]);
|
|
25
|
+
const brandChar = product.brandChar ?? (product.brand ?? product.name).charAt(0);
|
|
26
|
+
const badge = detectMs > 0 ? `已识别 · ${(detectMs / 1000).toFixed(1)}s` : '已识别';
|
|
27
|
+
const caption = product.priceCaption ?? '建议零售';
|
|
28
|
+
return /*#__PURE__*/_jsx(Animated.View, {
|
|
29
|
+
style: [styles.wrap, {
|
|
30
|
+
bottom: bottomInset + r(18)
|
|
31
|
+
}, {
|
|
32
|
+
opacity: anim,
|
|
33
|
+
transform: [{
|
|
34
|
+
translateY: anim.interpolate({
|
|
35
|
+
inputRange: [0, 1],
|
|
36
|
+
outputRange: [r(24), 0]
|
|
37
|
+
})
|
|
38
|
+
}]
|
|
39
|
+
}],
|
|
40
|
+
children: /*#__PURE__*/_jsxs(Card, {
|
|
41
|
+
borderColor: c.primary,
|
|
42
|
+
borderWidth: 2,
|
|
43
|
+
borderRadius: r(16),
|
|
44
|
+
padding: r(14),
|
|
45
|
+
children: [/*#__PURE__*/_jsxs(View, {
|
|
46
|
+
style: styles.header,
|
|
47
|
+
children: [/*#__PURE__*/_jsx(StatusDot, {
|
|
48
|
+
status: "done",
|
|
49
|
+
size: r(20)
|
|
50
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
51
|
+
style: s.badge,
|
|
52
|
+
children: badge
|
|
53
|
+
}), /*#__PURE__*/_jsx(View, {
|
|
54
|
+
style: styles.spacer
|
|
55
|
+
}), !!product.barcode && /*#__PURE__*/_jsx(Text, {
|
|
56
|
+
style: s.barcode,
|
|
57
|
+
children: product.barcode
|
|
58
|
+
})]
|
|
59
|
+
}), /*#__PURE__*/_jsxs(View, {
|
|
60
|
+
style: styles.body,
|
|
61
|
+
children: [/*#__PURE__*/_jsx(Avatar, {
|
|
62
|
+
label: brandChar,
|
|
63
|
+
variant: "brand",
|
|
64
|
+
size: "xl"
|
|
65
|
+
}), /*#__PURE__*/_jsxs(View, {
|
|
66
|
+
style: styles.info,
|
|
67
|
+
children: [/*#__PURE__*/_jsxs(Text, {
|
|
68
|
+
style: s.name,
|
|
69
|
+
numberOfLines: 2,
|
|
70
|
+
children: [product.brand ? `${product.brand} ` : '', product.name]
|
|
71
|
+
}), !!(product.spec || product.stockShort) && /*#__PURE__*/_jsx(Text, {
|
|
72
|
+
style: s.sub,
|
|
73
|
+
numberOfLines: 1,
|
|
74
|
+
children: [product.spec, product.stockShort ? `库存${product.stockShort}` : null].filter(Boolean).join(' · ')
|
|
75
|
+
})]
|
|
76
|
+
}), !!product.price && /*#__PURE__*/_jsxs(View, {
|
|
77
|
+
style: styles.priceCol,
|
|
78
|
+
children: [/*#__PURE__*/_jsx(Text, {
|
|
79
|
+
style: s.price,
|
|
80
|
+
children: product.price
|
|
81
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
82
|
+
style: s.caption,
|
|
83
|
+
children: caption
|
|
84
|
+
})]
|
|
85
|
+
})]
|
|
86
|
+
}), /*#__PURE__*/_jsxs(View, {
|
|
87
|
+
style: styles.actions,
|
|
88
|
+
children: [/*#__PURE__*/_jsx(Button, {
|
|
89
|
+
label: "\u7EE7\u7EED\u626B\u63CF",
|
|
90
|
+
variant: "secondary",
|
|
91
|
+
onPress: onContinue,
|
|
92
|
+
style: styles.btn
|
|
93
|
+
}), /*#__PURE__*/_jsx(Button, {
|
|
94
|
+
label: "\u786E\u8BA4",
|
|
95
|
+
variant: "primary",
|
|
96
|
+
onPress: onConfirm,
|
|
97
|
+
style: styles.btn
|
|
98
|
+
})]
|
|
99
|
+
})]
|
|
100
|
+
})
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
const styles = StyleSheet.create({
|
|
104
|
+
wrap: {
|
|
105
|
+
position: 'absolute',
|
|
106
|
+
left: r(16),
|
|
107
|
+
right: r(16),
|
|
108
|
+
zIndex: 50
|
|
109
|
+
},
|
|
110
|
+
header: {
|
|
111
|
+
flexDirection: 'row',
|
|
112
|
+
alignItems: 'center',
|
|
113
|
+
columnGap: r(7),
|
|
114
|
+
marginBottom: r(12)
|
|
115
|
+
},
|
|
116
|
+
spacer: {
|
|
117
|
+
flex: 1
|
|
118
|
+
},
|
|
119
|
+
body: {
|
|
120
|
+
flexDirection: 'row',
|
|
121
|
+
alignItems: 'center',
|
|
122
|
+
columnGap: r(14),
|
|
123
|
+
marginBottom: r(14)
|
|
124
|
+
},
|
|
125
|
+
info: {
|
|
126
|
+
flex: 1,
|
|
127
|
+
minWidth: 0
|
|
128
|
+
},
|
|
129
|
+
priceCol: {
|
|
130
|
+
alignItems: 'flex-end'
|
|
131
|
+
},
|
|
132
|
+
actions: {
|
|
133
|
+
flexDirection: 'row',
|
|
134
|
+
columnGap: r(10)
|
|
135
|
+
},
|
|
136
|
+
btn: {
|
|
137
|
+
flex: 1
|
|
138
|
+
}
|
|
139
|
+
});
|
|
140
|
+
const makeStyles = c => StyleSheet.create({
|
|
141
|
+
badge: {
|
|
142
|
+
fontSize: rf(13),
|
|
143
|
+
fontWeight: fw.semi,
|
|
144
|
+
color: c.foreground
|
|
145
|
+
},
|
|
146
|
+
barcode: {
|
|
147
|
+
fontSize: rf(12),
|
|
148
|
+
color: c.foregroundSubtle,
|
|
149
|
+
fontFamily: fontMono
|
|
150
|
+
},
|
|
151
|
+
name: {
|
|
152
|
+
fontSize: rf(16),
|
|
153
|
+
fontWeight: fw.semi,
|
|
154
|
+
color: c.foreground,
|
|
155
|
+
lineHeight: rf(21)
|
|
156
|
+
},
|
|
157
|
+
sub: {
|
|
158
|
+
fontSize: rf(12.5),
|
|
159
|
+
color: c.foregroundMuted,
|
|
160
|
+
marginTop: r(4)
|
|
161
|
+
},
|
|
162
|
+
price: {
|
|
163
|
+
fontSize: rf(24),
|
|
164
|
+
fontWeight: fw.heavy,
|
|
165
|
+
color: c.primary,
|
|
166
|
+
lineHeight: rf(24)
|
|
167
|
+
},
|
|
168
|
+
caption: {
|
|
169
|
+
fontSize: rf(11),
|
|
170
|
+
color: c.foregroundSubtle,
|
|
171
|
+
marginTop: r(3)
|
|
172
|
+
}
|
|
173
|
+
});
|
|
174
|
+
//# sourceMappingURL=ResultFocus.js.map
|
|
@@ -0,0 +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":"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","ignoreList":[]}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { StyleSheet, Text, View } from 'react-native';
|
|
4
|
+
import { Spinner, r, rf, fw } from '@unif/react-native-design';
|
|
5
|
+
import { scanChrome } from "./scanChrome.js";
|
|
6
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
7
|
+
// 取景框下方提示。识别中显示 design 的 Spinner(白)+ "识别中…"。
|
|
8
|
+
export function ScanHint({
|
|
9
|
+
detecting,
|
|
10
|
+
text
|
|
11
|
+
}) {
|
|
12
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
13
|
+
style: styles.row,
|
|
14
|
+
children: [detecting && /*#__PURE__*/_jsx(Spinner, {
|
|
15
|
+
size: r(15),
|
|
16
|
+
color: scanChrome.white
|
|
17
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
18
|
+
style: styles.text,
|
|
19
|
+
children: detecting ? '识别中…' : text
|
|
20
|
+
})]
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
const styles = StyleSheet.create({
|
|
24
|
+
row: {
|
|
25
|
+
marginTop: r(18),
|
|
26
|
+
flexDirection: 'row',
|
|
27
|
+
alignItems: 'center',
|
|
28
|
+
justifyContent: 'center',
|
|
29
|
+
columnGap: r(7)
|
|
30
|
+
},
|
|
31
|
+
text: {
|
|
32
|
+
color: scanChrome.hintText,
|
|
33
|
+
fontSize: rf(13.5),
|
|
34
|
+
fontWeight: fw.medium,
|
|
35
|
+
letterSpacing: 0.2,
|
|
36
|
+
textShadowColor: scanChrome.textShadow,
|
|
37
|
+
textShadowOffset: {
|
|
38
|
+
width: 0,
|
|
39
|
+
height: 1
|
|
40
|
+
},
|
|
41
|
+
textShadowRadius: 6
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
//# sourceMappingURL=ScanHint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["StyleSheet","Text","View","Spinner","r","rf","fw","scanChrome","jsx","_jsx","jsxs","_jsxs","ScanHint","detecting","text","style","styles","row","children","size","color","white","create","marginTop","flexDirection","alignItems","justifyContent","columnGap","hintText","fontSize","fontWeight","medium","letterSpacing","textShadowColor","textShadow","textShadowOffset","width","height","textShadowRadius"],"sourceRoot":"../../../src","sources":["Scanner/ScanHint.tsx"],"mappings":";;AAAA,SAASA,UAAU,EAAEC,IAAI,EAAEC,IAAI,QAAQ,cAAc;AACrD,SAASC,OAAO,EAAEC,CAAC,EAAEC,EAAE,EAAEC,EAAE,QAAQ,2BAA2B;AAC9D,SAASC,UAAU,QAAQ,iBAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAQ1C;AACA,OAAO,SAASC,QAAQA,CAAC;EAAEC,SAAS;EAAEC;AAAoB,CAAC,EAAE;EAC3D,oBACEH,KAAA,CAACT,IAAI;IAACa,KAAK,EAAEC,MAAM,CAACC,GAAI;IAAAC,QAAA,GACrBL,SAAS,iBAAIJ,IAAA,CAACN,OAAO;MAACgB,IAAI,EAAEf,CAAC,CAAC,EAAE,CAAE;MAACgB,KAAK,EAAEb,UAAU,CAACc;IAAM,CAAE,CAAC,eAC/DZ,IAAA,CAACR,IAAI;MAACc,KAAK,EAAEC,MAAM,CAACF,IAAK;MAAAI,QAAA,EAAEL,SAAS,GAAG,MAAM,GAAGC;IAAI,CAAO,CAAC;EAAA,CACxD,CAAC;AAEX;AAEA,MAAME,MAAM,GAAGhB,UAAU,CAACsB,MAAM,CAAC;EAC/BL,GAAG,EAAE;IACHM,SAAS,EAAEnB,CAAC,CAAC,EAAE,CAAC;IAChBoB,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE,QAAQ;IACxBC,SAAS,EAAEvB,CAAC,CAAC,CAAC;EAChB,CAAC;EACDU,IAAI,EAAE;IACJM,KAAK,EAAEb,UAAU,CAACqB,QAAQ;IAC1BC,QAAQ,EAAExB,EAAE,CAAC,IAAI,CAAC;IAClByB,UAAU,EAAExB,EAAE,CAACyB,MAAM;IACrBC,aAAa,EAAE,GAAG;IAClBC,eAAe,EAAE1B,UAAU,CAAC2B,UAAU;IACtCC,gBAAgB,EAAE;MAAEC,KAAK,EAAE,CAAC;MAAEC,MAAM,EAAE;IAAE,CAAC;IACzCC,gBAAgB,EAAE;EACpB;AACF,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { Pressable, StyleSheet, Text, View } from 'react-native';
|
|
4
|
+
import { Icon, useColors, r, rf, fw } from '@unif/react-native-design';
|
|
5
|
+
import { scanChrome } from "./scanChrome.js";
|
|
6
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
7
|
+
// 底部工具栏:手电筒 · 相册(按定稿,去掉了搜索 / 输入码)。点亮态用主题主色。
|
|
8
|
+
export function ScanToolbar({
|
|
9
|
+
flash,
|
|
10
|
+
bottomInset,
|
|
11
|
+
onFlash,
|
|
12
|
+
onAlbum
|
|
13
|
+
}) {
|
|
14
|
+
const c = useColors();
|
|
15
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
16
|
+
style: [styles.bar, {
|
|
17
|
+
bottom: bottomInset + r(50)
|
|
18
|
+
}],
|
|
19
|
+
pointerEvents: "box-none",
|
|
20
|
+
children: [/*#__PURE__*/_jsx(ToolbarItem, {
|
|
21
|
+
icon: flash ? 'flash-on' : 'flash-off',
|
|
22
|
+
label: flash ? '已开灯' : '手电筒',
|
|
23
|
+
activeColor: flash ? c.primary : undefined,
|
|
24
|
+
onPress: onFlash
|
|
25
|
+
}), /*#__PURE__*/_jsx(ToolbarItem, {
|
|
26
|
+
icon: "image",
|
|
27
|
+
label: "\u76F8\u518C",
|
|
28
|
+
onPress: onAlbum
|
|
29
|
+
})]
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
function ToolbarItem({
|
|
33
|
+
icon,
|
|
34
|
+
label,
|
|
35
|
+
activeColor,
|
|
36
|
+
onPress
|
|
37
|
+
}) {
|
|
38
|
+
return /*#__PURE__*/_jsx(Pressable, {
|
|
39
|
+
onPress: onPress,
|
|
40
|
+
style: styles.item,
|
|
41
|
+
accessibilityRole: "button",
|
|
42
|
+
accessibilityLabel: label,
|
|
43
|
+
children: ({
|
|
44
|
+
pressed
|
|
45
|
+
}) => /*#__PURE__*/_jsxs(_Fragment, {
|
|
46
|
+
children: [/*#__PURE__*/_jsx(View, {
|
|
47
|
+
style: [styles.circle, activeColor ? {
|
|
48
|
+
backgroundColor: activeColor,
|
|
49
|
+
borderColor: scanChrome.glassBorderActive
|
|
50
|
+
} : {
|
|
51
|
+
backgroundColor: scanChrome.glassDisc2,
|
|
52
|
+
borderColor: scanChrome.glassBorder
|
|
53
|
+
}, pressed && {
|
|
54
|
+
opacity: 0.7
|
|
55
|
+
}],
|
|
56
|
+
children: /*#__PURE__*/_jsx(Icon, {
|
|
57
|
+
name: icon,
|
|
58
|
+
size: r(23),
|
|
59
|
+
color: scanChrome.white
|
|
60
|
+
})
|
|
61
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
62
|
+
style: styles.label,
|
|
63
|
+
children: label
|
|
64
|
+
})]
|
|
65
|
+
})
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
const styles = StyleSheet.create({
|
|
69
|
+
bar: {
|
|
70
|
+
position: 'absolute',
|
|
71
|
+
left: 0,
|
|
72
|
+
right: 0,
|
|
73
|
+
zIndex: 30,
|
|
74
|
+
flexDirection: 'row',
|
|
75
|
+
justifyContent: 'center',
|
|
76
|
+
columnGap: r(40)
|
|
77
|
+
},
|
|
78
|
+
item: {
|
|
79
|
+
width: r(72),
|
|
80
|
+
alignItems: 'center',
|
|
81
|
+
rowGap: r(7)
|
|
82
|
+
},
|
|
83
|
+
circle: {
|
|
84
|
+
width: r(54),
|
|
85
|
+
height: r(54),
|
|
86
|
+
borderRadius: 999,
|
|
87
|
+
alignItems: 'center',
|
|
88
|
+
justifyContent: 'center',
|
|
89
|
+
borderWidth: StyleSheet.hairlineWidth
|
|
90
|
+
},
|
|
91
|
+
label: {
|
|
92
|
+
fontSize: rf(12),
|
|
93
|
+
fontWeight: fw.medium,
|
|
94
|
+
color: scanChrome.toolbarLabel,
|
|
95
|
+
textShadowColor: 'rgba(0,0,0,0.4)',
|
|
96
|
+
textShadowOffset: {
|
|
97
|
+
width: 0,
|
|
98
|
+
height: 1
|
|
99
|
+
},
|
|
100
|
+
textShadowRadius: 4
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
//# sourceMappingURL=ScanToolbar.js.map
|
|
@@ -0,0 +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":[]}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { Pressable, StyleSheet, Text, View } from 'react-native';
|
|
4
|
+
import { Icon, r, rf, fw } from '@unif/react-native-design';
|
|
5
|
+
import { scanChrome } from "./scanChrome.js";
|
|
6
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
7
|
+
// 顶栏:关闭键 · 标题 · 尾部插槽。叠在深色相机预览之上,故文字/图标恒为白(不随主题)。
|
|
8
|
+
// 设计稿用了毛玻璃,RN 无内建模糊,这里以半透明深色底近似(design 的 BlurLayer 需额外原生模糊库)。
|
|
9
|
+
export function ScanTopBar({
|
|
10
|
+
title,
|
|
11
|
+
topInset,
|
|
12
|
+
onClose,
|
|
13
|
+
trailing
|
|
14
|
+
}) {
|
|
15
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
16
|
+
style: [styles.bar, {
|
|
17
|
+
paddingTop: topInset
|
|
18
|
+
}],
|
|
19
|
+
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, {
|
|
34
|
+
style: styles.title,
|
|
35
|
+
children: title
|
|
36
|
+
}), /*#__PURE__*/_jsx(View, {
|
|
37
|
+
style: styles.trailing,
|
|
38
|
+
children: trailing
|
|
39
|
+
})]
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
const styles = StyleSheet.create({
|
|
43
|
+
bar: {
|
|
44
|
+
position: 'absolute',
|
|
45
|
+
top: 0,
|
|
46
|
+
left: 0,
|
|
47
|
+
right: 0,
|
|
48
|
+
zIndex: 30,
|
|
49
|
+
paddingHorizontal: r(14),
|
|
50
|
+
paddingBottom: r(8),
|
|
51
|
+
flexDirection: 'row',
|
|
52
|
+
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
|
|
67
|
+
},
|
|
68
|
+
title: {
|
|
69
|
+
color: scanChrome.white,
|
|
70
|
+
fontSize: rf(16),
|
|
71
|
+
fontWeight: fw.semi,
|
|
72
|
+
letterSpacing: 0.2,
|
|
73
|
+
textShadowColor: scanChrome.textShadow,
|
|
74
|
+
textShadowOffset: {
|
|
75
|
+
width: 0,
|
|
76
|
+
height: 1
|
|
77
|
+
},
|
|
78
|
+
textShadowRadius: 6
|
|
79
|
+
},
|
|
80
|
+
trailing: {
|
|
81
|
+
width: r(38),
|
|
82
|
+
height: r(38),
|
|
83
|
+
alignItems: 'center',
|
|
84
|
+
justifyContent: 'center'
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
//# sourceMappingURL=ScanTopBar.js.map
|
|
@@ -0,0 +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":[]}
|