react-native-fpay 0.1.1
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/Fpay.podspec +20 -0
- package/LICENSE +20 -0
- package/README.md +37 -0
- package/android/build.gradle +67 -0
- package/android/src/main/AndroidManifest.xml +2 -0
- package/android/src/main/java/com/fpay/FpayModule.kt +15 -0
- package/android/src/main/java/com/fpay/FpayPackage.kt +31 -0
- package/ios/Fpay.h +5 -0
- package/ios/Fpay.mm +21 -0
- package/lib/module/FountainPayProvider.js +18 -0
- package/lib/module/FountainPayProvider.js.map +1 -0
- package/lib/module/core/api/client.js +47 -0
- package/lib/module/core/api/client.js.map +1 -0
- package/lib/module/core/api/index.js +35 -0
- package/lib/module/core/api/index.js.map +1 -0
- package/lib/module/core/types/index.js +4 -0
- package/lib/module/core/types/index.js.map +1 -0
- package/lib/module/engine/BLEReceiverService.js +190 -0
- package/lib/module/engine/BLEReceiverService.js.map +1 -0
- package/lib/module/engine/BLESenderService.js +259 -0
- package/lib/module/engine/BLESenderService.js.map +1 -0
- package/lib/module/engine/FPEngine.js +340 -0
- package/lib/module/engine/FPEngine.js.map +1 -0
- package/lib/module/engine/NearbyUsersService.js +87 -0
- package/lib/module/engine/NearbyUsersService.js.map +1 -0
- package/lib/module/index.js +16 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/module/ui/components/FPButton.js +71 -0
- package/lib/module/ui/components/FPButton.js.map +1 -0
- package/lib/module/ui/components/LoadingAnimation/InLoading.js +74 -0
- package/lib/module/ui/components/LoadingAnimation/InLoading.js.map +1 -0
- package/lib/module/ui/components/LoadingAnimation/index.js +82 -0
- package/lib/module/ui/components/LoadingAnimation/index.js.map +1 -0
- package/lib/module/ui/components/OtpInput/OTPInputView.js +290 -0
- package/lib/module/ui/components/OtpInput/OTPInputView.js.map +1 -0
- package/lib/module/ui/components/OtpInput/Styles.js +20 -0
- package/lib/module/ui/components/OtpInput/Styles.js.map +1 -0
- package/lib/module/ui/components/OtpInput/helpers/codeToArray.js +7 -0
- package/lib/module/ui/components/OtpInput/helpers/codeToArray.js.map +1 -0
- package/lib/module/ui/components/OtpInput/helpers/device.js +9 -0
- package/lib/module/ui/components/OtpInput/helpers/device.js.map +1 -0
- package/lib/module/ui/components/OtpInput/helpers/styles.js +17 -0
- package/lib/module/ui/components/OtpInput/helpers/styles.js.map +1 -0
- package/lib/module/ui/components/OtpInput/helpers/types.js +4 -0
- package/lib/module/ui/components/OtpInput/helpers/types.js.map +1 -0
- package/lib/module/ui/components/OtpInput/index.js +45 -0
- package/lib/module/ui/components/OtpInput/index.js.map +1 -0
- package/lib/module/ui/components/PulseAnimation.js +61 -0
- package/lib/module/ui/components/PulseAnimation.js.map +1 -0
- package/lib/module/ui/modals/FPPaymentRequestModal.js +253 -0
- package/lib/module/ui/modals/FPPaymentRequestModal.js.map +1 -0
- package/lib/module/ui/modals/FPShell.js +180 -0
- package/lib/module/ui/modals/FPShell.js.map +1 -0
- package/lib/module/ui/screens/ReceiveScreen.js +291 -0
- package/lib/module/ui/screens/ReceiveScreen.js.map +1 -0
- package/lib/module/ui/screens/SendScreen.js +216 -0
- package/lib/module/ui/screens/SendScreen.js.map +1 -0
- package/lib/module/ui/screens/sub/BluetoothSubScreen.js +403 -0
- package/lib/module/ui/screens/sub/BluetoothSubScreen.js.map +1 -0
- package/lib/module/ui/screens/sub/NFCSubScreen.js +169 -0
- package/lib/module/ui/screens/sub/NFCSubScreen.js.map +1 -0
- package/lib/module/ui/screens/sub/NQRSubScreen.js +136 -0
- package/lib/module/ui/screens/sub/NQRSubScreen.js.map +1 -0
- package/lib/module/ui/screens/sub/ProximitySubScreen.js +501 -0
- package/lib/module/ui/screens/sub/ProximitySubScreen.js.map +1 -0
- package/lib/module/ui/screens/sub/TransferSubScreen.js +361 -0
- package/lib/module/ui/screens/sub/TransferSubScreen.js.map +1 -0
- package/lib/module/ui/theme/index.js +64 -0
- package/lib/module/ui/theme/index.js.map +1 -0
- package/lib/module/useFountainPay.js +82 -0
- package/lib/module/useFountainPay.js.map +1 -0
- package/lib/typescript/package.json +1 -0
- package/lib/typescript/src/FountainPayProvider.d.ts +7 -0
- package/lib/typescript/src/FountainPayProvider.d.ts.map +1 -0
- package/lib/typescript/src/core/api/client.d.ts +7 -0
- package/lib/typescript/src/core/api/client.d.ts.map +1 -0
- package/lib/typescript/src/core/api/index.d.ts +67 -0
- package/lib/typescript/src/core/api/index.d.ts.map +1 -0
- package/lib/typescript/src/core/types/index.d.ts +130 -0
- package/lib/typescript/src/core/types/index.d.ts.map +1 -0
- package/lib/typescript/src/engine/BLEReceiverService.d.ts +43 -0
- package/lib/typescript/src/engine/BLEReceiverService.d.ts.map +1 -0
- package/lib/typescript/src/engine/BLESenderService.d.ts +39 -0
- package/lib/typescript/src/engine/BLESenderService.d.ts.map +1 -0
- package/lib/typescript/src/engine/FPEngine.d.ts +24 -0
- package/lib/typescript/src/engine/FPEngine.d.ts.map +1 -0
- package/lib/typescript/src/engine/NearbyUsersService.d.ts +19 -0
- package/lib/typescript/src/engine/NearbyUsersService.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +4 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/lib/typescript/src/ui/components/FPButton.d.ts +12 -0
- package/lib/typescript/src/ui/components/FPButton.d.ts.map +1 -0
- package/lib/typescript/src/ui/components/LoadingAnimation/InLoading.d.ts +7 -0
- package/lib/typescript/src/ui/components/LoadingAnimation/InLoading.d.ts.map +1 -0
- package/lib/typescript/src/ui/components/LoadingAnimation/index.d.ts +6 -0
- package/lib/typescript/src/ui/components/LoadingAnimation/index.d.ts.map +1 -0
- package/lib/typescript/src/ui/components/OtpInput/OTPInputView.d.ts +29 -0
- package/lib/typescript/src/ui/components/OtpInput/OTPInputView.d.ts.map +1 -0
- package/lib/typescript/src/ui/components/OtpInput/Styles.d.ts +330 -0
- package/lib/typescript/src/ui/components/OtpInput/Styles.d.ts.map +1 -0
- package/lib/typescript/src/ui/components/OtpInput/helpers/codeToArray.d.ts +6 -0
- package/lib/typescript/src/ui/components/OtpInput/helpers/codeToArray.d.ts.map +1 -0
- package/lib/typescript/src/ui/components/OtpInput/helpers/device.d.ts +6 -0
- package/lib/typescript/src/ui/components/OtpInput/helpers/device.d.ts.map +1 -0
- package/lib/typescript/src/ui/components/OtpInput/helpers/styles.d.ts +6 -0
- package/lib/typescript/src/ui/components/OtpInput/helpers/styles.d.ts.map +1 -0
- package/lib/typescript/src/ui/components/OtpInput/helpers/types.d.ts +84 -0
- package/lib/typescript/src/ui/components/OtpInput/helpers/types.d.ts.map +1 -0
- package/lib/typescript/src/ui/components/OtpInput/index.d.ts +9 -0
- package/lib/typescript/src/ui/components/OtpInput/index.d.ts.map +1 -0
- package/lib/typescript/src/ui/components/PulseAnimation.d.ts +2 -0
- package/lib/typescript/src/ui/components/PulseAnimation.d.ts.map +1 -0
- package/lib/typescript/src/ui/modals/FPPaymentRequestModal.d.ts +2 -0
- package/lib/typescript/src/ui/modals/FPPaymentRequestModal.d.ts.map +1 -0
- package/lib/typescript/src/ui/modals/FPShell.d.ts +2 -0
- package/lib/typescript/src/ui/modals/FPShell.d.ts.map +1 -0
- package/lib/typescript/src/ui/screens/ReceiveScreen.d.ts +10 -0
- package/lib/typescript/src/ui/screens/ReceiveScreen.d.ts.map +1 -0
- package/lib/typescript/src/ui/screens/SendScreen.d.ts +9 -0
- package/lib/typescript/src/ui/screens/SendScreen.d.ts.map +1 -0
- package/lib/typescript/src/ui/screens/sub/BluetoothSubScreen.d.ts +552 -0
- package/lib/typescript/src/ui/screens/sub/BluetoothSubScreen.d.ts.map +1 -0
- package/lib/typescript/src/ui/screens/sub/NFCSubScreen.d.ts +19 -0
- package/lib/typescript/src/ui/screens/sub/NFCSubScreen.d.ts.map +1 -0
- package/lib/typescript/src/ui/screens/sub/NQRSubScreen.d.ts +13 -0
- package/lib/typescript/src/ui/screens/sub/NQRSubScreen.d.ts.map +1 -0
- package/lib/typescript/src/ui/screens/sub/ProximitySubScreen.d.ts +552 -0
- package/lib/typescript/src/ui/screens/sub/ProximitySubScreen.d.ts.map +1 -0
- package/lib/typescript/src/ui/screens/sub/TransferSubScreen.d.ts +12 -0
- package/lib/typescript/src/ui/screens/sub/TransferSubScreen.d.ts.map +1 -0
- package/lib/typescript/src/ui/theme/index.d.ts +62 -0
- package/lib/typescript/src/ui/theme/index.d.ts.map +1 -0
- package/lib/typescript/src/useFountainPay.d.ts +3 -0
- package/lib/typescript/src/useFountainPay.d.ts.map +1 -0
- package/package.json +217 -0
- package/src/FountainPayProvider.tsx +21 -0
- package/src/core/api/client.ts +47 -0
- package/src/core/api/index.ts +61 -0
- package/src/core/types/index.ts +144 -0
- package/src/engine/BLEReceiverService.ts +244 -0
- package/src/engine/BLESenderService.ts +314 -0
- package/src/engine/FPEngine.ts +370 -0
- package/src/engine/NearbyUsersService.ts +106 -0
- package/src/index.ts +30 -0
- package/src/ui/components/FPButton.tsx +42 -0
- package/src/ui/components/LoadingAnimation/InLoading.tsx +88 -0
- package/src/ui/components/LoadingAnimation/index.tsx +93 -0
- package/src/ui/components/OtpInput/OTPInputView.tsx +243 -0
- package/src/ui/components/OtpInput/Styles.ts +19 -0
- package/src/ui/components/OtpInput/helpers/codeToArray.ts +3 -0
- package/src/ui/components/OtpInput/helpers/device.ts +6 -0
- package/src/ui/components/OtpInput/helpers/styles.ts +17 -0
- package/src/ui/components/OtpInput/helpers/types.ts +88 -0
- package/src/ui/components/OtpInput/index.tsx +51 -0
- package/src/ui/components/PulseAnimation.tsx +78 -0
- package/src/ui/modals/FPPaymentRequestModal.tsx +158 -0
- package/src/ui/modals/FPShell.tsx +107 -0
- package/src/ui/screens/ReceiveScreen.tsx +119 -0
- package/src/ui/screens/SendScreen.tsx +86 -0
- package/src/ui/screens/sub/BluetoothSubScreen.tsx +433 -0
- package/src/ui/screens/sub/NFCSubScreen.tsx +83 -0
- package/src/ui/screens/sub/NQRSubScreen.tsx +61 -0
- package/src/ui/screens/sub/ProximitySubScreen.tsx +390 -0
- package/src/ui/screens/sub/TransferSubScreen.tsx +146 -0
- package/src/ui/theme/index.ts +24 -0
- package/src/useFountainPay.ts +95 -0
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React, { useEffect, useState } from 'react';
|
|
4
|
+
import { View, Text, StyleSheet, ActivityIndicator, Image } from 'react-native';
|
|
5
|
+
import { nqrAPI } from "../../../core/api/index.js";
|
|
6
|
+
import { C, R, S, F, shadow } from "../../theme/index.js";
|
|
7
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
8
|
+
export function NQRSubScreen({
|
|
9
|
+
mode,
|
|
10
|
+
amount,
|
|
11
|
+
currency = 'NGN',
|
|
12
|
+
onBack,
|
|
13
|
+
onDone,
|
|
14
|
+
onError
|
|
15
|
+
}) {
|
|
16
|
+
const [qr, setQr] = useState(null);
|
|
17
|
+
const [loading, setLoading] = useState(false);
|
|
18
|
+
useEffect(() => {
|
|
19
|
+
if (mode === 'receive') {
|
|
20
|
+
setLoading(true);
|
|
21
|
+
nqrAPI.generate({
|
|
22
|
+
amount: amount ? amount * 100 : undefined,
|
|
23
|
+
currency
|
|
24
|
+
}).then(setQr).catch(e => onError?.(e)).finally(() => setLoading(false));
|
|
25
|
+
}
|
|
26
|
+
}, []);
|
|
27
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
28
|
+
style: st.wrap,
|
|
29
|
+
children: [/*#__PURE__*/_jsx(Text, {
|
|
30
|
+
onPress: onBack,
|
|
31
|
+
style: st.back,
|
|
32
|
+
children: "Back"
|
|
33
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
34
|
+
style: st.title,
|
|
35
|
+
children: mode === 'receive' ? 'Your QR Code' : 'Scan QR Code'
|
|
36
|
+
}), loading && /*#__PURE__*/_jsx(ActivityIndicator, {
|
|
37
|
+
size: "large",
|
|
38
|
+
color: C.brand,
|
|
39
|
+
style: {
|
|
40
|
+
marginTop: S.xl
|
|
41
|
+
}
|
|
42
|
+
}), qr && /*#__PURE__*/_jsxs(View, {
|
|
43
|
+
style: st.qrCard,
|
|
44
|
+
children: [/*#__PURE__*/_jsx(Image, {
|
|
45
|
+
source: {
|
|
46
|
+
uri: 'data:image/png;base64,' + qr.qrCodeImageBase64
|
|
47
|
+
},
|
|
48
|
+
style: {
|
|
49
|
+
width: 200,
|
|
50
|
+
height: 200
|
|
51
|
+
}
|
|
52
|
+
}), amount && /*#__PURE__*/_jsxs(Text, {
|
|
53
|
+
style: st.amount,
|
|
54
|
+
children: [currency, " ", amount.toLocaleString('en-NG', {
|
|
55
|
+
minimumFractionDigits: 2
|
|
56
|
+
})]
|
|
57
|
+
}), /*#__PURE__*/_jsxs(Text, {
|
|
58
|
+
style: st.ref,
|
|
59
|
+
children: ["Ref: ", qr.reference]
|
|
60
|
+
}), qr.expiresAt && /*#__PURE__*/_jsxs(Text, {
|
|
61
|
+
style: st.expiry,
|
|
62
|
+
children: ["Expires: ", new Date(qr.expiresAt).toLocaleTimeString()]
|
|
63
|
+
})]
|
|
64
|
+
}), mode === 'send' && /*#__PURE__*/_jsxs(View, {
|
|
65
|
+
style: st.placeholder,
|
|
66
|
+
children: [/*#__PURE__*/_jsx(Text, {
|
|
67
|
+
style: st.placeholderText,
|
|
68
|
+
children: "Camera scanner"
|
|
69
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
70
|
+
style: st.placeholderSub,
|
|
71
|
+
children: "Integrate your preferred camera/QR library here and pass the scanned qrString to nqrAPI.pay()"
|
|
72
|
+
})]
|
|
73
|
+
})]
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
const st = StyleSheet.create({
|
|
77
|
+
wrap: {
|
|
78
|
+
flex: 1,
|
|
79
|
+
padding: S.lg
|
|
80
|
+
},
|
|
81
|
+
back: {
|
|
82
|
+
color: C.brand,
|
|
83
|
+
fontSize: F.md,
|
|
84
|
+
fontWeight: '600',
|
|
85
|
+
marginBottom: S.md
|
|
86
|
+
},
|
|
87
|
+
title: {
|
|
88
|
+
fontSize: F.xl,
|
|
89
|
+
fontWeight: '800',
|
|
90
|
+
color: C.ink,
|
|
91
|
+
marginBottom: S.lg
|
|
92
|
+
},
|
|
93
|
+
qrCard: {
|
|
94
|
+
alignItems: 'center',
|
|
95
|
+
backgroundColor: C.white,
|
|
96
|
+
borderRadius: R.xl,
|
|
97
|
+
padding: S.xl,
|
|
98
|
+
...shadow.lg
|
|
99
|
+
},
|
|
100
|
+
amount: {
|
|
101
|
+
fontSize: F.xxl,
|
|
102
|
+
fontWeight: '800',
|
|
103
|
+
color: C.ink,
|
|
104
|
+
marginTop: S.md
|
|
105
|
+
},
|
|
106
|
+
ref: {
|
|
107
|
+
fontSize: F.sm,
|
|
108
|
+
color: C.muted,
|
|
109
|
+
marginTop: S.sm
|
|
110
|
+
},
|
|
111
|
+
expiry: {
|
|
112
|
+
fontSize: F.xs,
|
|
113
|
+
color: C.amber,
|
|
114
|
+
marginTop: 4
|
|
115
|
+
},
|
|
116
|
+
placeholder: {
|
|
117
|
+
flex: 1,
|
|
118
|
+
backgroundColor: C.ink,
|
|
119
|
+
borderRadius: R.xl,
|
|
120
|
+
justifyContent: 'center',
|
|
121
|
+
alignItems: 'center',
|
|
122
|
+
padding: S.xl
|
|
123
|
+
},
|
|
124
|
+
placeholderText: {
|
|
125
|
+
color: C.white,
|
|
126
|
+
fontSize: F.xl,
|
|
127
|
+
fontWeight: '700'
|
|
128
|
+
},
|
|
129
|
+
placeholderSub: {
|
|
130
|
+
color: C.ghost,
|
|
131
|
+
fontSize: F.sm,
|
|
132
|
+
textAlign: 'center',
|
|
133
|
+
marginTop: S.sm
|
|
134
|
+
}
|
|
135
|
+
});
|
|
136
|
+
//# sourceMappingURL=NQRSubScreen.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","useEffect","useState","View","Text","StyleSheet","ActivityIndicator","Image","nqrAPI","C","R","S","F","shadow","jsx","_jsx","jsxs","_jsxs","NQRSubScreen","mode","amount","currency","onBack","onDone","onError","qr","setQr","loading","setLoading","generate","undefined","then","catch","e","finally","style","st","wrap","children","onPress","back","title","size","color","brand","marginTop","xl","qrCard","source","uri","qrCodeImageBase64","width","height","toLocaleString","minimumFractionDigits","ref","reference","expiresAt","expiry","Date","toLocaleTimeString","placeholder","placeholderText","placeholderSub","create","flex","padding","lg","fontSize","md","fontWeight","marginBottom","ink","alignItems","backgroundColor","white","borderRadius","xxl","sm","muted","xs","amber","justifyContent","ghost","textAlign"],"sourceRoot":"../../../../../src","sources":["ui/screens/sub/NQRSubScreen.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,501 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React, { useState, useEffect, useRef } from 'react';
|
|
4
|
+
import styled from 'styled-components/native';
|
|
5
|
+
import Svg, { Path } from "react-native-svg";
|
|
6
|
+
import { View, Text, TouchableOpacity, StyleSheet, Animated, Easing } from 'react-native';
|
|
7
|
+
import { transferAPI } from "../../../core/api/index.js";
|
|
8
|
+
import { C, R, S, F } from "../../theme/index.js";
|
|
9
|
+
import NearbyUsersService from "../../../engine/NearbyUsersService.js";
|
|
10
|
+
import { PulseAnimation } from "../../components/PulseAnimation.js";
|
|
11
|
+
import Ionicons from 'react-native-vector-icons/Ionicons';
|
|
12
|
+
import LoadingAnimation from "../../components/LoadingAnimation/index.js";
|
|
13
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
14
|
+
const Container = styled(View)`
|
|
15
|
+
flex: 1;
|
|
16
|
+
background-color: #000000;
|
|
17
|
+
`;
|
|
18
|
+
const Header = styled(View)`
|
|
19
|
+
flex-direction: row;
|
|
20
|
+
align-items: center;
|
|
21
|
+
justify-content: space-between;
|
|
22
|
+
padding: 12px 16px;
|
|
23
|
+
position: absolute !important;
|
|
24
|
+
top: 40px;
|
|
25
|
+
left: 0;
|
|
26
|
+
right: 0;
|
|
27
|
+
z-index: 10;
|
|
28
|
+
elevation: 4;
|
|
29
|
+
shadow-color: #000;
|
|
30
|
+
shadow-offset: 0px 2px;
|
|
31
|
+
shadow-opacity: 0.1;
|
|
32
|
+
shadow-radius: 4px;
|
|
33
|
+
z-index: 9999999999 !important;
|
|
34
|
+
`;
|
|
35
|
+
const HeaderButton = styled(TouchableOpacity)`
|
|
36
|
+
padding: 8px;
|
|
37
|
+
background-color: #fff;
|
|
38
|
+
width: 40px;
|
|
39
|
+
height: 40px;
|
|
40
|
+
border-radius: 50%;
|
|
41
|
+
justify-content: center;
|
|
42
|
+
align-items: center;
|
|
43
|
+
`;
|
|
44
|
+
const HeaderCenter = styled(View)`
|
|
45
|
+
flex-direction: row;
|
|
46
|
+
align-items: center;
|
|
47
|
+
gap: 8px;
|
|
48
|
+
`;
|
|
49
|
+
const HeaderRight = styled(View)`
|
|
50
|
+
flex-direction: row;
|
|
51
|
+
align-items: center;
|
|
52
|
+
gap: 8px;
|
|
53
|
+
`;
|
|
54
|
+
const QuickLinksContainer = styled.View`
|
|
55
|
+
align-items: center;
|
|
56
|
+
margin-top: 250px;
|
|
57
|
+
`;
|
|
58
|
+
const QuickLinksContainerWithDevices = styled.View`
|
|
59
|
+
align-items: start;
|
|
60
|
+
margin-top: 30%;
|
|
61
|
+
margin-bottom: 20px;
|
|
62
|
+
`;
|
|
63
|
+
const QuickLinksIcon = styled.TouchableOpacity`
|
|
64
|
+
width: 96px;
|
|
65
|
+
height: 96px;
|
|
66
|
+
border-radius: 48px;
|
|
67
|
+
background-color: #18181b;
|
|
68
|
+
justify-content: center;
|
|
69
|
+
align-items: center;
|
|
70
|
+
margin-bottom: 16px;
|
|
71
|
+
`;
|
|
72
|
+
const QuickLinksText = styled.Text`
|
|
73
|
+
color: #9ca3af;
|
|
74
|
+
font-size: 18px;
|
|
75
|
+
`;
|
|
76
|
+
export const DeviceCard = styled.View`
|
|
77
|
+
background-color: white;
|
|
78
|
+
border-radius: 12px;
|
|
79
|
+
padding: 16px;
|
|
80
|
+
margin-bottom: 12px;
|
|
81
|
+
flex-direction: row;
|
|
82
|
+
justify-content: space-between;
|
|
83
|
+
align-items: center;
|
|
84
|
+
shadow-color: #000;
|
|
85
|
+
shadow-offset: 0px 2px;
|
|
86
|
+
shadow-opacity: 0.1;
|
|
87
|
+
shadow-radius: 8px;
|
|
88
|
+
elevation: 3;
|
|
89
|
+
`;
|
|
90
|
+
export const DeviceInfo = styled.View`
|
|
91
|
+
flex: 1;
|
|
92
|
+
`;
|
|
93
|
+
export const DeviceName = styled.Text`
|
|
94
|
+
font-size: 16px;
|
|
95
|
+
font-weight: 600;
|
|
96
|
+
color: #111827;
|
|
97
|
+
margin-bottom: 4px;
|
|
98
|
+
`;
|
|
99
|
+
export const DeviceSignal = styled.Text`
|
|
100
|
+
font-size: 14px;
|
|
101
|
+
color: #6b7280;
|
|
102
|
+
`;
|
|
103
|
+
export const PayButton = styled.TouchableOpacity`
|
|
104
|
+
background-color: #2563eb;
|
|
105
|
+
padding: 10px 20px;
|
|
106
|
+
border-radius: 8px;
|
|
107
|
+
`;
|
|
108
|
+
export const PayButtonText = styled.Text`
|
|
109
|
+
color: white;
|
|
110
|
+
font-size: 14px;
|
|
111
|
+
font-weight: 600;
|
|
112
|
+
`;
|
|
113
|
+
const ScrollContainer = styled.ScrollView`
|
|
114
|
+
flex: 1;
|
|
115
|
+
`;
|
|
116
|
+
const ContentContainer = styled.View`
|
|
117
|
+
padding: 14px;
|
|
118
|
+
margin-bottom: 80%;
|
|
119
|
+
`;
|
|
120
|
+
const BluetoothIconContainer = styled.View`
|
|
121
|
+
align-items: center;
|
|
122
|
+
margin-top: 15%;
|
|
123
|
+
`;
|
|
124
|
+
const LCAnimationContainer = styled.View`
|
|
125
|
+
align-items: center;
|
|
126
|
+
justify-content: center;
|
|
127
|
+
margin-top: 40%;
|
|
128
|
+
`;
|
|
129
|
+
const LCIconContainer = styled(Animated.View)`
|
|
130
|
+
width: 140px;
|
|
131
|
+
height: 140px;
|
|
132
|
+
border-radius: 90px;
|
|
133
|
+
background-color: #E8F5F1;
|
|
134
|
+
align-items: center;
|
|
135
|
+
justify-content: center;
|
|
136
|
+
margin-top: 24px;
|
|
137
|
+
margin-bottom: 24px;
|
|
138
|
+
`;
|
|
139
|
+
const LCIcon = styled.Text`
|
|
140
|
+
font-size: 80px;
|
|
141
|
+
`;
|
|
142
|
+
const StatusTextContainer = styled.View`
|
|
143
|
+
align-items: center;
|
|
144
|
+
margin-bottom: 8px;
|
|
145
|
+
`;
|
|
146
|
+
const StatusText = styled.Text`
|
|
147
|
+
font-size: 18px;
|
|
148
|
+
font-weight: 600;
|
|
149
|
+
color: #333333;
|
|
150
|
+
text-align: center;
|
|
151
|
+
margin-bottom: 8px;
|
|
152
|
+
`;
|
|
153
|
+
const StatusSubText = styled.Text`
|
|
154
|
+
font-size: 14px;
|
|
155
|
+
color: #666666;
|
|
156
|
+
text-align: center;
|
|
157
|
+
`;
|
|
158
|
+
const ConnectionStatusBadge = styled.View`
|
|
159
|
+
background-color: ${props => props.connected ? '#0a3d2e' : '#E0E0E0'};
|
|
160
|
+
border-radius: 20px;
|
|
161
|
+
padding: 8px 16px;
|
|
162
|
+
margin-top: 16px;
|
|
163
|
+
`;
|
|
164
|
+
const ConnectionStatusText = styled.Text`
|
|
165
|
+
font-size: 12px;
|
|
166
|
+
font-weight: 600;
|
|
167
|
+
color: ${props => props.connected ? '#ffffff' : '#666666'};
|
|
168
|
+
`;
|
|
169
|
+
const BluetoothIcon = ({
|
|
170
|
+
color = "#111",
|
|
171
|
+
size = 22
|
|
172
|
+
}) => /*#__PURE__*/_jsxs(Svg, {
|
|
173
|
+
width: size,
|
|
174
|
+
height: size,
|
|
175
|
+
strokeWidth: "0.9",
|
|
176
|
+
viewBox: "0 0 24 24",
|
|
177
|
+
fill: "none",
|
|
178
|
+
color: color,
|
|
179
|
+
children: [/*#__PURE__*/_jsx(Path, {
|
|
180
|
+
d: "M6 19.0007C3.57111 17.1763 2 14.2716 2 11C2 5.47715 6.47715 1 12 1C17.5228 1 22 5.47715 22 11C22 14.2716 20.4289 17.1763 18 19.0007",
|
|
181
|
+
stroke: "#fff",
|
|
182
|
+
strokeWidth: "0.9",
|
|
183
|
+
strokeLinecap: "round",
|
|
184
|
+
strokeLinejoin: "round"
|
|
185
|
+
}), /*#__PURE__*/_jsx(Path, {
|
|
186
|
+
d: "M6 19.0007C3.57111 17.1763 2 14.2716 2 11C2 5.47715 6.47715 1 12 1C17.5228 1 22 5.47715 22 11C22 14.2716 20.4289 17.1763 18 19.0007",
|
|
187
|
+
stroke: "#fff",
|
|
188
|
+
strokeWidth: "0.9",
|
|
189
|
+
strokeLinecap: "round",
|
|
190
|
+
strokeLinejoin: "round"
|
|
191
|
+
}), /*#__PURE__*/_jsx(Path, {
|
|
192
|
+
d: "M7.52779 15C6.57771 13.9385 6 12.5367 6 11C6 7.68629 8.68629 5 12 5C15.3137 5 18 7.68629 18 11C18 12.5367 17.4223 13.9385 16.4722 15",
|
|
193
|
+
stroke: "#fff",
|
|
194
|
+
strokeWidth: "0.9",
|
|
195
|
+
strokeLinecap: "round",
|
|
196
|
+
strokeLinejoin: "round"
|
|
197
|
+
}), /*#__PURE__*/_jsx(Path, {
|
|
198
|
+
fillRule: "evenodd",
|
|
199
|
+
clipRule: "evenodd",
|
|
200
|
+
d: "M9.25 11C9.25 9.48122 10.4812 8.25 12 8.25C13.5188 8.25 14.75 9.48122 14.75 11C14.75 12.5188 13.5188 13.75 12 13.75C10.4812 13.75 9.25 12.5188 9.25 11Z",
|
|
201
|
+
fill: "#fff"
|
|
202
|
+
}), /*#__PURE__*/_jsx(Path, {
|
|
203
|
+
d: "M15.0776 21.4865C14.8566 22.8126 13.7093 23.7844 12.365 23.7844H11.7536C10.4093 23.7844 9.262 22.8126 9.041 21.4865L8.53213 18.4333C8.29232 16.9946 9.43086 15.8854 10.5339 15.15C11.9123 14.231 12.3864 14.3406 13.5847 15.1396C14.6421 15.8445 15.8263 16.9946 15.5865 18.4333L15.0776 21.4865Z",
|
|
204
|
+
fill: "#fff"
|
|
205
|
+
})]
|
|
206
|
+
});
|
|
207
|
+
const BluetoothScanningIcon = ({
|
|
208
|
+
color = "#111",
|
|
209
|
+
size = 22
|
|
210
|
+
}) => /*#__PURE__*/_jsx(Svg, {
|
|
211
|
+
width: size,
|
|
212
|
+
height: size,
|
|
213
|
+
strokeWidth: "0.9",
|
|
214
|
+
viewBox: "0 0 24 24",
|
|
215
|
+
fill: "none",
|
|
216
|
+
color: color,
|
|
217
|
+
children: /*#__PURE__*/_jsx(Path, {
|
|
218
|
+
d: "M6.75 8L17.25 16.5L11.75 22V2L17.25 7.5L6.75 16",
|
|
219
|
+
stroke: color,
|
|
220
|
+
strokeWidth: "0.9",
|
|
221
|
+
strokeLinecap: "round",
|
|
222
|
+
strokeLinejoin: "round"
|
|
223
|
+
})
|
|
224
|
+
});
|
|
225
|
+
const ProximityIcon = ({
|
|
226
|
+
color = "#111",
|
|
227
|
+
size = 22
|
|
228
|
+
}) => /*#__PURE__*/_jsxs(Svg, {
|
|
229
|
+
width: size,
|
|
230
|
+
height: size,
|
|
231
|
+
strokeWidth: "0.9",
|
|
232
|
+
viewBox: "0 0 24 24",
|
|
233
|
+
fill: "none",
|
|
234
|
+
color: color,
|
|
235
|
+
children: [/*#__PURE__*/_jsx(Path, {
|
|
236
|
+
d: "M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z",
|
|
237
|
+
stroke: color,
|
|
238
|
+
strokeWidth: "0.9",
|
|
239
|
+
strokeLinecap: "round",
|
|
240
|
+
strokeLinejoin: "round"
|
|
241
|
+
}), /*#__PURE__*/_jsx(Path, {
|
|
242
|
+
d: "M12 13C12.5523 13 13 12.5523 13 12C13 11.4477 12.5523 11 12 11C11.4477 11 11 11.4477 11 12C11 12.5523 11.4477 13 12 13Z",
|
|
243
|
+
fill: color,
|
|
244
|
+
stroke: color,
|
|
245
|
+
strokeWidth: "0.9",
|
|
246
|
+
strokeLinecap: "round",
|
|
247
|
+
strokeLinejoin: "round"
|
|
248
|
+
}), /*#__PURE__*/_jsx(Path, {
|
|
249
|
+
d: "M19 19L17.5 17.5",
|
|
250
|
+
stroke: color,
|
|
251
|
+
strokeWidth: "0.9",
|
|
252
|
+
strokeLinecap: "round",
|
|
253
|
+
strokeLinejoin: "round"
|
|
254
|
+
}), /*#__PURE__*/_jsx(Path, {
|
|
255
|
+
d: "M15.5 15.5L14.5 14.5",
|
|
256
|
+
stroke: color,
|
|
257
|
+
strokeWidth: "0.9",
|
|
258
|
+
strokeLinecap: "round",
|
|
259
|
+
strokeLinejoin: "round"
|
|
260
|
+
})]
|
|
261
|
+
});
|
|
262
|
+
export function ProximitySubScreen({
|
|
263
|
+
amount,
|
|
264
|
+
currency,
|
|
265
|
+
onDone,
|
|
266
|
+
onSuccess,
|
|
267
|
+
onError
|
|
268
|
+
}) {
|
|
269
|
+
const [nearbyUsers, setNearbyUsers] = useState([]);
|
|
270
|
+
const [loading, setLoading] = useState(false);
|
|
271
|
+
const [scanning, setScanning] = useState(false);
|
|
272
|
+
const iconScale = useRef(new Animated.Value(1)).current;
|
|
273
|
+
const animationRef = useRef(null);
|
|
274
|
+
const handleScan = async () => {
|
|
275
|
+
try {
|
|
276
|
+
const users = await NearbyUsersService.getNearbyUsers();
|
|
277
|
+
setNearbyUsers(users);
|
|
278
|
+
} catch (error) {
|
|
279
|
+
console.error('Error fetching nearby users:', error);
|
|
280
|
+
} finally {
|
|
281
|
+
setScanning(false);
|
|
282
|
+
}
|
|
283
|
+
};
|
|
284
|
+
const handlePayment = async selected => {
|
|
285
|
+
if (!selected) return;
|
|
286
|
+
setLoading(true);
|
|
287
|
+
try {
|
|
288
|
+
const result = await transferAPI.send({
|
|
289
|
+
accountNumber: selected.accountNumber,
|
|
290
|
+
bankCode: selected.bankCode,
|
|
291
|
+
amount: amount * 100,
|
|
292
|
+
narration: 'Proximity payment'
|
|
293
|
+
});
|
|
294
|
+
onSuccess?.({
|
|
295
|
+
id: result.reference,
|
|
296
|
+
reference: result.reference,
|
|
297
|
+
type: 'debit',
|
|
298
|
+
channel: 'proximity',
|
|
299
|
+
amount: result.amount,
|
|
300
|
+
currency: result.currency,
|
|
301
|
+
status: result.status,
|
|
302
|
+
recipient: {
|
|
303
|
+
accountName: selected.displayName
|
|
304
|
+
},
|
|
305
|
+
createdAt: result.createdAt
|
|
306
|
+
});
|
|
307
|
+
onDone();
|
|
308
|
+
} catch (e) {
|
|
309
|
+
onError?.(e);
|
|
310
|
+
} finally {
|
|
311
|
+
setLoading(false);
|
|
312
|
+
}
|
|
313
|
+
};
|
|
314
|
+
useEffect(() => {
|
|
315
|
+
if (scanning) {
|
|
316
|
+
handleScan();
|
|
317
|
+
animationRef.current = Animated.loop(Animated.sequence([Animated.timing(iconScale, {
|
|
318
|
+
toValue: 1.1,
|
|
319
|
+
duration: 1500,
|
|
320
|
+
easing: Easing.inOut(Easing.ease),
|
|
321
|
+
useNativeDriver: true
|
|
322
|
+
}), Animated.timing(iconScale, {
|
|
323
|
+
toValue: 1,
|
|
324
|
+
duration: 1500,
|
|
325
|
+
easing: Easing.inOut(Easing.ease),
|
|
326
|
+
useNativeDriver: true
|
|
327
|
+
})]));
|
|
328
|
+
animationRef.current.start();
|
|
329
|
+
} else {
|
|
330
|
+
// Stop animation cleanly
|
|
331
|
+
animationRef.current?.stop();
|
|
332
|
+
iconScale.stopAnimation();
|
|
333
|
+
iconScale.setValue(1);
|
|
334
|
+
}
|
|
335
|
+
return () => {
|
|
336
|
+
animationRef.current?.stop();
|
|
337
|
+
};
|
|
338
|
+
}, [scanning]);
|
|
339
|
+
return /*#__PURE__*/_jsxs(Container, {
|
|
340
|
+
children: [loading && /*#__PURE__*/_jsx(LoadingAnimation, {}), /*#__PURE__*/_jsxs(Header, {
|
|
341
|
+
children: [/*#__PURE__*/_jsxs(HeaderCenter, {
|
|
342
|
+
children: [/*#__PURE__*/_jsx(Text, {
|
|
343
|
+
style: {
|
|
344
|
+
fontWeight: 'bold',
|
|
345
|
+
fontSize: 16,
|
|
346
|
+
color: '#FFF'
|
|
347
|
+
},
|
|
348
|
+
children: "Proximity"
|
|
349
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
350
|
+
style: {
|
|
351
|
+
fontSize: 10,
|
|
352
|
+
color: '#FFF'
|
|
353
|
+
},
|
|
354
|
+
children: "Transfer"
|
|
355
|
+
})]
|
|
356
|
+
}), /*#__PURE__*/_jsx(HeaderRight, {
|
|
357
|
+
children: /*#__PURE__*/_jsx(HeaderButton, {
|
|
358
|
+
children: /*#__PURE__*/_jsx(Ionicons, {
|
|
359
|
+
name: "ellipsis-vertical",
|
|
360
|
+
size: 22
|
|
361
|
+
})
|
|
362
|
+
})
|
|
363
|
+
})]
|
|
364
|
+
}), !scanning && !nearbyUsers.length && /*#__PURE__*/_jsxs(QuickLinksContainer, {
|
|
365
|
+
children: [/*#__PURE__*/_jsx(QuickLinksIcon, {
|
|
366
|
+
onPress: () => setScanning(true),
|
|
367
|
+
children: /*#__PURE__*/_jsx(ProximityIcon, {
|
|
368
|
+
size: 60,
|
|
369
|
+
color: "#FFF"
|
|
370
|
+
})
|
|
371
|
+
}), /*#__PURE__*/_jsx(QuickLinksText, {
|
|
372
|
+
children: "Tap to Pay"
|
|
373
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
374
|
+
style: {
|
|
375
|
+
fontSize: 16,
|
|
376
|
+
color: '#999'
|
|
377
|
+
},
|
|
378
|
+
children: "No nearby users found"
|
|
379
|
+
})]
|
|
380
|
+
}), scanning && /*#__PURE__*/_jsxs(LCAnimationContainer, {
|
|
381
|
+
children: [/*#__PURE__*/_jsx(PulseAnimation, {}), /*#__PURE__*/_jsx(LCIconContainer, {
|
|
382
|
+
style: {
|
|
383
|
+
transform: [{
|
|
384
|
+
scale: iconScale
|
|
385
|
+
}],
|
|
386
|
+
marginTop: 64
|
|
387
|
+
},
|
|
388
|
+
children: /*#__PURE__*/_jsx(LCIcon, {
|
|
389
|
+
children: "\uD83D\uDCE1"
|
|
390
|
+
})
|
|
391
|
+
}), /*#__PURE__*/_jsx(StatusTextContainer, {
|
|
392
|
+
children: /*#__PURE__*/_jsx(StatusText, {
|
|
393
|
+
children: "Searching for nearby users"
|
|
394
|
+
})
|
|
395
|
+
})]
|
|
396
|
+
}), !scanning && nearbyUsers.length > 0 && /*#__PURE__*/_jsx(ScrollContainer, {
|
|
397
|
+
showsVerticalScrollIndicator: false,
|
|
398
|
+
children: /*#__PURE__*/_jsxs(ContentContainer, {
|
|
399
|
+
children: [/*#__PURE__*/_jsx(QuickLinksContainerWithDevices, {
|
|
400
|
+
children: /*#__PURE__*/_jsxs(QuickLinksText, {
|
|
401
|
+
children: ["Found ", nearbyUsers.length, " user(s)"]
|
|
402
|
+
})
|
|
403
|
+
}), nearbyUsers.map(user => /*#__PURE__*/_jsxs(DeviceCard, {
|
|
404
|
+
children: [/*#__PURE__*/_jsxs(DeviceInfo, {
|
|
405
|
+
children: [/*#__PURE__*/_jsxs(DeviceName, {
|
|
406
|
+
children: [user.userName || user.name, user.appName]
|
|
407
|
+
}), /*#__PURE__*/_jsxs(DeviceSignal, {
|
|
408
|
+
children: ["Signal: ", Math.round(user.distance), "m away"]
|
|
409
|
+
})]
|
|
410
|
+
}), /*#__PURE__*/_jsx(PayButton, {
|
|
411
|
+
onPress: () => handlePayment(user),
|
|
412
|
+
activeOpacity: 0.8,
|
|
413
|
+
children: /*#__PURE__*/_jsx(PayButtonText, {
|
|
414
|
+
children: "Pay"
|
|
415
|
+
})
|
|
416
|
+
})]
|
|
417
|
+
}, user.userId))]
|
|
418
|
+
})
|
|
419
|
+
})]
|
|
420
|
+
});
|
|
421
|
+
}
|
|
422
|
+
const st = StyleSheet.create({
|
|
423
|
+
wrap: {
|
|
424
|
+
flex: 1,
|
|
425
|
+
padding: S.lg
|
|
426
|
+
},
|
|
427
|
+
back: {
|
|
428
|
+
color: C.brand,
|
|
429
|
+
fontSize: F.md,
|
|
430
|
+
fontWeight: '600',
|
|
431
|
+
marginBottom: S.md
|
|
432
|
+
},
|
|
433
|
+
title: {
|
|
434
|
+
fontSize: F.xl,
|
|
435
|
+
fontWeight: '800',
|
|
436
|
+
color: C.ink,
|
|
437
|
+
marginBottom: S.lg
|
|
438
|
+
},
|
|
439
|
+
peerCard: {
|
|
440
|
+
flexDirection: 'row',
|
|
441
|
+
alignItems: 'center',
|
|
442
|
+
backgroundColor: C.surface,
|
|
443
|
+
borderRadius: R.lg,
|
|
444
|
+
padding: S.md,
|
|
445
|
+
borderWidth: 2,
|
|
446
|
+
borderColor: 'transparent'
|
|
447
|
+
},
|
|
448
|
+
peerSelected: {
|
|
449
|
+
borderColor: C.brand,
|
|
450
|
+
backgroundColor: '#EEF4FF'
|
|
451
|
+
},
|
|
452
|
+
avatar: {
|
|
453
|
+
width: 44,
|
|
454
|
+
height: 44,
|
|
455
|
+
borderRadius: 22,
|
|
456
|
+
backgroundColor: C.brand,
|
|
457
|
+
justifyContent: 'center',
|
|
458
|
+
alignItems: 'center',
|
|
459
|
+
marginRight: S.md
|
|
460
|
+
},
|
|
461
|
+
avatarText: {
|
|
462
|
+
color: C.white,
|
|
463
|
+
fontWeight: '800',
|
|
464
|
+
fontSize: F.lg
|
|
465
|
+
},
|
|
466
|
+
peerName: {
|
|
467
|
+
fontSize: F.md,
|
|
468
|
+
fontWeight: '700',
|
|
469
|
+
color: C.ink
|
|
470
|
+
},
|
|
471
|
+
peerBank: {
|
|
472
|
+
fontSize: F.sm,
|
|
473
|
+
color: C.muted
|
|
474
|
+
},
|
|
475
|
+
dist: {
|
|
476
|
+
fontSize: F.xs,
|
|
477
|
+
color: C.brand
|
|
478
|
+
},
|
|
479
|
+
check: {
|
|
480
|
+
color: C.brand,
|
|
481
|
+
fontWeight: '800'
|
|
482
|
+
},
|
|
483
|
+
empty: {
|
|
484
|
+
textAlign: 'center',
|
|
485
|
+
color: C.muted,
|
|
486
|
+
padding: S.xl
|
|
487
|
+
},
|
|
488
|
+
footer: {
|
|
489
|
+
backgroundColor: C.surface,
|
|
490
|
+
borderRadius: R.lg,
|
|
491
|
+
padding: S.lg,
|
|
492
|
+
marginTop: S.md
|
|
493
|
+
},
|
|
494
|
+
footerText: {
|
|
495
|
+
fontSize: F.md,
|
|
496
|
+
color: C.ink,
|
|
497
|
+
fontWeight: '600',
|
|
498
|
+
marginBottom: S.md
|
|
499
|
+
}
|
|
500
|
+
});
|
|
501
|
+
//# sourceMappingURL=ProximitySubScreen.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","useState","useEffect","useRef","styled","Svg","Path","View","Text","TouchableOpacity","StyleSheet","Animated","Easing","transferAPI","C","R","S","F","NearbyUsersService","PulseAnimation","Ionicons","LoadingAnimation","jsx","_jsx","jsxs","_jsxs","Container","Header","HeaderButton","HeaderCenter","HeaderRight","QuickLinksContainer","QuickLinksContainerWithDevices","QuickLinksIcon","QuickLinksText","DeviceCard","DeviceInfo","DeviceName","DeviceSignal","PayButton","PayButtonText","ScrollContainer","ScrollView","ContentContainer","BluetoothIconContainer","LCAnimationContainer","LCIconContainer","LCIcon","StatusTextContainer","StatusText","StatusSubText","ConnectionStatusBadge","props","connected","ConnectionStatusText","BluetoothIcon","color","size","width","height","strokeWidth","viewBox","fill","children","d","stroke","strokeLinecap","strokeLinejoin","fillRule","clipRule","BluetoothScanningIcon","ProximityIcon","ProximitySubScreen","amount","currency","onDone","onSuccess","onError","nearbyUsers","setNearbyUsers","loading","setLoading","scanning","setScanning","iconScale","Value","current","animationRef","handleScan","users","getNearbyUsers","error","console","handlePayment","selected","result","send","accountNumber","bankCode","narration","id","reference","type","channel","status","recipient","accountName","displayName","createdAt","e","loop","sequence","timing","toValue","duration","easing","inOut","ease","useNativeDriver","start","stop","stopAnimation","setValue","style","fontWeight","fontSize","name","length","onPress","transform","scale","marginTop","showsVerticalScrollIndicator","map","user","userName","appName","Math","round","distance","activeOpacity","userId","st","create","wrap","flex","padding","lg","back","brand","md","marginBottom","title","xl","ink","peerCard","flexDirection","alignItems","backgroundColor","surface","borderRadius","borderWidth","borderColor","peerSelected","avatar","justifyContent","marginRight","avatarText","white","peerName","peerBank","sm","muted","dist","xs","check","empty","textAlign","footer","footerText"],"sourceRoot":"../../../../../src","sources":["ui/screens/sub/ProximitySubScreen.tsx"],"mappings":"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","ignoreList":[]}
|