react-native-fpay 0.2.9 → 0.3.2

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 (120) hide show
  1. package/lib/module/FountainPayProvider.js +5 -1
  2. package/lib/module/FountainPayProvider.js.map +1 -1
  3. package/lib/module/core/api/index.js +22 -12
  4. package/lib/module/core/api/index.js.map +1 -1
  5. package/lib/module/engine/BLEReceiverService.js.map +1 -1
  6. package/lib/module/engine/FPEngine.js +24 -13
  7. package/lib/module/engine/FPEngine.js.map +1 -1
  8. package/lib/module/engine/useIsForeground.js +17 -0
  9. package/lib/module/engine/useIsForeground.js.map +1 -0
  10. package/lib/module/ui/components/AnimatedDots.js +68 -0
  11. package/lib/module/ui/components/AnimatedDots.js.map +1 -0
  12. package/lib/module/ui/components/ConfirmScreen.js +333 -0
  13. package/lib/module/ui/components/ConfirmScreen.js.map +1 -0
  14. package/lib/module/ui/modals/FPPaymentRequestModal.js +6 -8
  15. package/lib/module/ui/modals/FPPaymentRequestModal.js.map +1 -1
  16. package/lib/module/ui/modals/FPShell.js +7 -4
  17. package/lib/module/ui/modals/FPShell.js.map +1 -1
  18. package/lib/module/ui/screens/ReceiveScreen.js +379 -274
  19. package/lib/module/ui/screens/ReceiveScreen.js.map +1 -1
  20. package/lib/module/ui/screens/SendScreen.js +154 -45
  21. package/lib/module/ui/screens/SendScreen.js.map +1 -1
  22. package/lib/module/ui/screens/styles.js +89 -0
  23. package/lib/module/ui/screens/styles.js.map +1 -0
  24. package/lib/module/ui/screens/sub/receivePayment/Nfc/index.js +361 -0
  25. package/lib/module/ui/screens/sub/receivePayment/Nfc/index.js.map +1 -0
  26. package/lib/module/ui/screens/sub/receivePayment/Qr/index.js +338 -0
  27. package/lib/module/ui/screens/sub/receivePayment/Qr/index.js.map +1 -0
  28. package/lib/module/ui/screens/sub/receivePayment/Transfer/index.js +453 -0
  29. package/lib/module/ui/screens/sub/receivePayment/Transfer/index.js.map +1 -0
  30. package/lib/module/ui/screens/sub/{BluetoothSubScreen.js → sendPayment/BluetoothSubScreen.js} +25 -32
  31. package/lib/module/ui/screens/sub/sendPayment/BluetoothSubScreen.js.map +1 -0
  32. package/lib/module/ui/screens/sub/sendPayment/NFCSubScreen.js +354 -0
  33. package/lib/module/ui/screens/sub/sendPayment/NFCSubScreen.js.map +1 -0
  34. package/lib/module/ui/screens/sub/sendPayment/NQRSubScreen.js +440 -0
  35. package/lib/module/ui/screens/sub/sendPayment/NQRSubScreen.js.map +1 -0
  36. package/lib/module/ui/screens/sub/{ProximitySubScreen.js → sendPayment/ProximitySubScreen.js} +20 -111
  37. package/lib/module/ui/screens/sub/sendPayment/ProximitySubScreen.js.map +1 -0
  38. package/lib/module/ui/screens/sub/sendPayment/TransferSubScreen.js +327 -0
  39. package/lib/module/ui/screens/sub/sendPayment/TransferSubScreen.js.map +1 -0
  40. package/lib/typescript/src/FountainPayProvider.d.ts.map +1 -1
  41. package/lib/typescript/src/core/api/index.d.ts +20 -27
  42. package/lib/typescript/src/core/api/index.d.ts.map +1 -1
  43. package/lib/typescript/src/core/types/index.d.ts +56 -13
  44. package/lib/typescript/src/core/types/index.d.ts.map +1 -1
  45. package/lib/typescript/src/engine/BLEReceiverService.d.ts +2 -0
  46. package/lib/typescript/src/engine/BLEReceiverService.d.ts.map +1 -1
  47. package/lib/typescript/src/engine/FPEngine.d.ts +3 -1
  48. package/lib/typescript/src/engine/FPEngine.d.ts.map +1 -1
  49. package/lib/typescript/src/engine/useIsForeground.d.ts +2 -0
  50. package/lib/typescript/src/engine/useIsForeground.d.ts.map +1 -0
  51. package/lib/typescript/src/ui/components/AnimatedDots.d.ts +2 -0
  52. package/lib/typescript/src/ui/components/AnimatedDots.d.ts.map +1 -0
  53. package/lib/typescript/src/ui/components/ConfirmScreen.d.ts +10 -0
  54. package/lib/typescript/src/ui/components/ConfirmScreen.d.ts.map +1 -0
  55. package/lib/typescript/src/ui/components/OtpInput/Styles.d.ts +3 -3
  56. package/lib/typescript/src/ui/modals/FPPaymentRequestModal.d.ts.map +1 -1
  57. package/lib/typescript/src/ui/modals/FPShell.d.ts.map +1 -1
  58. package/lib/typescript/src/ui/screens/ReceiveScreen.d.ts +2 -9
  59. package/lib/typescript/src/ui/screens/ReceiveScreen.d.ts.map +1 -1
  60. package/lib/typescript/src/ui/screens/SendScreen.d.ts +4 -2
  61. package/lib/typescript/src/ui/screens/SendScreen.d.ts.map +1 -1
  62. package/lib/typescript/src/ui/screens/styles.d.ts +1390 -0
  63. package/lib/typescript/src/ui/screens/styles.d.ts.map +1 -0
  64. package/lib/typescript/src/ui/screens/sub/receivePayment/Nfc/index.d.ts +10 -0
  65. package/lib/typescript/src/ui/screens/sub/receivePayment/Nfc/index.d.ts.map +1 -0
  66. package/lib/typescript/src/ui/screens/sub/receivePayment/Qr/index.d.ts +10 -0
  67. package/lib/typescript/src/ui/screens/sub/receivePayment/Qr/index.d.ts.map +1 -0
  68. package/lib/typescript/src/ui/screens/sub/receivePayment/Transfer/index.d.ts +5 -0
  69. package/lib/typescript/src/ui/screens/sub/receivePayment/Transfer/index.d.ts.map +1 -0
  70. package/lib/typescript/src/ui/screens/sub/{BluetoothSubScreen.d.ts → sendPayment/BluetoothSubScreen.d.ts} +2 -11
  71. package/lib/typescript/src/ui/screens/sub/sendPayment/BluetoothSubScreen.d.ts.map +1 -0
  72. package/lib/typescript/src/ui/screens/sub/sendPayment/NFCSubScreen.d.ts +3 -0
  73. package/lib/typescript/src/ui/screens/sub/sendPayment/NFCSubScreen.d.ts.map +1 -0
  74. package/lib/typescript/src/ui/screens/sub/sendPayment/NQRSubScreen.d.ts +3 -0
  75. package/lib/typescript/src/ui/screens/sub/sendPayment/NQRSubScreen.d.ts.map +1 -0
  76. package/lib/typescript/src/ui/screens/sub/{ProximitySubScreen.d.ts → sendPayment/ProximitySubScreen.d.ts} +2 -10
  77. package/lib/typescript/src/ui/screens/sub/sendPayment/ProximitySubScreen.d.ts.map +1 -0
  78. package/lib/typescript/src/ui/screens/sub/sendPayment/TransferSubScreen.d.ts +3 -0
  79. package/lib/typescript/src/ui/screens/sub/sendPayment/TransferSubScreen.d.ts.map +1 -0
  80. package/package.json +1 -1
  81. package/src/FountainPayProvider.tsx +7 -1
  82. package/src/core/api/index.ts +34 -19
  83. package/src/core/types/index.ts +67 -13
  84. package/src/engine/BLEReceiverService.ts +2 -0
  85. package/src/engine/FPEngine.ts +29 -14
  86. package/src/engine/useIsForeground.ts +18 -0
  87. package/src/ui/components/AnimatedDots.tsx +81 -0
  88. package/src/ui/components/ConfirmScreen.tsx +421 -0
  89. package/src/ui/modals/FPPaymentRequestModal.tsx +7 -6
  90. package/src/ui/modals/FPShell.tsx +9 -9
  91. package/src/ui/screens/ReceiveScreen.tsx +266 -115
  92. package/src/ui/screens/SendScreen.tsx +141 -19
  93. package/src/ui/screens/styles.ts +101 -0
  94. package/src/ui/screens/sub/receivePayment/Nfc/index.tsx +418 -0
  95. package/src/ui/screens/sub/receivePayment/Qr/index.tsx +391 -0
  96. package/src/ui/screens/sub/receivePayment/Transfer/index.tsx +512 -0
  97. package/src/ui/screens/sub/{BluetoothSubScreen.tsx → sendPayment/BluetoothSubScreen.tsx} +27 -46
  98. package/src/ui/screens/sub/sendPayment/NFCSubScreen.tsx +302 -0
  99. package/src/ui/screens/sub/sendPayment/NQRSubScreen.tsx +490 -0
  100. package/src/ui/screens/sub/{ProximitySubScreen.tsx → sendPayment/ProximitySubScreen.tsx} +24 -44
  101. package/src/ui/screens/sub/sendPayment/TransferSubScreen.tsx +345 -0
  102. package/lib/module/ui/screens/sub/BluetoothSubScreen.js.map +0 -1
  103. package/lib/module/ui/screens/sub/NFCSubScreen.js +0 -164
  104. package/lib/module/ui/screens/sub/NFCSubScreen.js.map +0 -1
  105. package/lib/module/ui/screens/sub/NQRSubScreen.js +0 -131
  106. package/lib/module/ui/screens/sub/NQRSubScreen.js.map +0 -1
  107. package/lib/module/ui/screens/sub/ProximitySubScreen.js.map +0 -1
  108. package/lib/module/ui/screens/sub/TransferSubScreen.js +0 -353
  109. package/lib/module/ui/screens/sub/TransferSubScreen.js.map +0 -1
  110. package/lib/typescript/src/ui/screens/sub/BluetoothSubScreen.d.ts.map +0 -1
  111. package/lib/typescript/src/ui/screens/sub/NFCSubScreen.d.ts +0 -18
  112. package/lib/typescript/src/ui/screens/sub/NFCSubScreen.d.ts.map +0 -1
  113. package/lib/typescript/src/ui/screens/sub/NQRSubScreen.d.ts +0 -12
  114. package/lib/typescript/src/ui/screens/sub/NQRSubScreen.d.ts.map +0 -1
  115. package/lib/typescript/src/ui/screens/sub/ProximitySubScreen.d.ts.map +0 -1
  116. package/lib/typescript/src/ui/screens/sub/TransferSubScreen.d.ts +0 -11
  117. package/lib/typescript/src/ui/screens/sub/TransferSubScreen.d.ts.map +0 -1
  118. package/src/ui/screens/sub/NFCSubScreen.tsx +0 -86
  119. package/src/ui/screens/sub/NQRSubScreen.tsx +0 -62
  120. package/src/ui/screens/sub/TransferSubScreen.tsx +0 -147
@@ -0,0 +1,440 @@
1
+ "use strict";
2
+
3
+ import React, { useEffect, useState } from 'react';
4
+ import { View, Text, StyleSheet, TouchableOpacity, Dimensions, Animated, Easing, Alert, Vibration, Linking } from 'react-native';
5
+ import { Camera, useCameraDevice, useCodeScanner } from 'react-native-vision-camera';
6
+ import styled from 'styled-components/native';
7
+ import { launchImageLibrary } from 'react-native-image-picker';
8
+ import QRKit from 'react-native-qr-kit';
9
+ import Ionicons from 'react-native-vector-icons/Ionicons';
10
+ import { useIsForeground } from "../../../../engine/useIsForeground.js";
11
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
12
+ const {
13
+ width,
14
+ height
15
+ } = Dimensions.get('window');
16
+
17
+ // Styled Components
18
+ const Container = styled(View)`
19
+ flex: 1;
20
+ background-color: #000000;
21
+ `;
22
+ const Header = styled(View)`
23
+ flex-direction: row;
24
+ align-items: center;
25
+ justify-content: space-between;
26
+ padding: 12px 16px;
27
+ position: absolute !important;
28
+ top: 40px;
29
+ left: 0;
30
+ right: 0;
31
+ z-index: 10;
32
+ elevation: 4;
33
+ shadow-color: #000;
34
+ shadow-offset: 0px 2px;
35
+ shadow-opacity: 0.1;
36
+ shadow-radius: 4px;
37
+ z-index: 9999999999 !important;
38
+ `;
39
+ const HeaderButton = styled(TouchableOpacity)`
40
+ padding: 8px;
41
+ background-color: #fff;
42
+ width: 40px;
43
+ height: 40px;
44
+ border-radius: 50%;
45
+ justify-content: center;
46
+ align-items: center;
47
+ `;
48
+ const HeaderCenter = styled(View)`
49
+ flex-direction: row;
50
+ align-items: center;
51
+ gap: 8px;
52
+ `;
53
+ const HeaderRight = styled(View)`
54
+ flex-direction: row;
55
+ align-items: center;
56
+ gap: 8px;
57
+ `;
58
+ const CameraContainer = styled(View)`
59
+ flex: 1;
60
+ `;
61
+ const StyledCamera = styled(Camera)`
62
+ flex: 1;
63
+ `;
64
+ const CameraPlaceholder = styled(View)`
65
+ flex: 1;
66
+ background-color: #1a1a1a;
67
+ justify-content: center;
68
+ align-items: center;
69
+ `;
70
+ const PlaceholderText = styled(Text)`
71
+ color: #ffffff;
72
+ font-size: 16px;
73
+ text-align: center;
74
+ padding: 20px;
75
+ `;
76
+ const PermissionButton = styled(TouchableOpacity)`
77
+ background-color: #10b981;
78
+ padding: 12px 24px;
79
+ border-radius: 12px;
80
+ margin-top: 16px;
81
+ `;
82
+ const PermissionButtonText = styled(Text)`
83
+ color: #ffffff;
84
+ font-size: 14px;
85
+ font-weight: 600;
86
+ `;
87
+ const ScanOverlay = styled(View)`
88
+ position: absolute;
89
+ top: 150px;
90
+ left: 0;
91
+ right: 0;
92
+ justify-content: center;
93
+ align-items: center;
94
+ `;
95
+ const ScanOverlays = styled(View)`
96
+ position: absolute;
97
+ top: 200px;
98
+ left: 0;
99
+ right: 0;
100
+ bottom: ${height * 0.5}px;
101
+ justify-content: center;
102
+ align-items: center;
103
+ `;
104
+ const ScanFrame = styled(View)`
105
+ width: ${width * 0.75}px;
106
+ height: ${width * 0.75}px;
107
+ position: relative;
108
+ `;
109
+ const CornerBorder = styled(View)`
110
+ position: absolute;
111
+ width: 40px;
112
+ height: 40px;
113
+ ${props => {
114
+ switch (props.position) {
115
+ case 'topLeft':
116
+ return 'top: 0; left: 0; border-top-width: 4px; border-left-width: 4px;';
117
+ case 'topRight':
118
+ return 'top: 0; right: 0; border-top-width: 4px; border-right-width: 4px;';
119
+ case 'bottomLeft':
120
+ return 'bottom: 0; left: 0; border-bottom-width: 4px; border-left-width: 4px;';
121
+ case 'bottomRight':
122
+ return 'bottom: 0; right: 0; border-bottom-width: 4px; border-right-width: 4px;';
123
+ default:
124
+ return '';
125
+ }
126
+ }}
127
+ border-color: #10b981;
128
+ `;
129
+ const ScanLineContainer = styled(View)`
130
+ width: 100%;
131
+ height: 100%;
132
+ overflow: hidden;
133
+ `;
134
+ const ScanLine = styled(View)`
135
+ width: 100%;
136
+ height: 2px;
137
+ background-color: #10b981;
138
+ shadow-color: #10b981;
139
+ shadow-offset: 0px 0px;
140
+ shadow-opacity: 0.8;
141
+ shadow-radius: 4px;
142
+ elevation: 5;
143
+ `;
144
+ const ScanInstructionText = styled(Text)`
145
+ color: #ffffff;
146
+ font-size: 16px;
147
+ font-weight: 600;
148
+ text-align: center;
149
+ margin-top: 24px;
150
+ text-shadow-color: rgba(0, 0, 0, 0.75);
151
+ text-shadow-offset: 0px 1px;
152
+ text-shadow-radius: 3px;
153
+ `;
154
+ const ScannedDataContainer = styled(View)`
155
+ position: absolute;
156
+ top: 100px;
157
+ left: 20px;
158
+ right: 20px;
159
+ background-color: rgba(16, 185, 129, 0.95);
160
+ padding: 16px;
161
+ border-radius: 12px;
162
+ z-index: 5;
163
+ `;
164
+ const ScannedDataText = styled(Text)`
165
+ color: #ffffff;
166
+ font-size: 14px;
167
+ font-weight: 600;
168
+ `;
169
+ export function NQRSubScreen({
170
+ amount,
171
+ currency,
172
+ onClose,
173
+ onProcessTransaction,
174
+ onError
175
+ }) {
176
+ const [hasPermission, setHasPermission] = useState(null);
177
+ const [scannedData, setScannedData] = useState(null);
178
+ const [isScanning, setIsScanning] = useState(true);
179
+ const [torch, setTorch] = useState(false);
180
+ const [layoutReady, setLayoutReady] = useState(false);
181
+ const [isActive, setIsActive] = useState(false);
182
+ const isForeground = useIsForeground();
183
+ const lineAnim = React.useRef(new Animated.Value(0)).current;
184
+ const lineWidth = 2;
185
+ const device = useCameraDevice('back', {
186
+ physicalDevices: ['wide-angle-camera']
187
+ });
188
+ useEffect(() => {
189
+ checkCameraPermission();
190
+ return () => {
191
+ setIsActive(false);
192
+ };
193
+ }, []);
194
+ useEffect(() => {
195
+ // if (scanned) {
196
+ Animated.loop(Animated.sequence([Animated.timing(lineAnim, {
197
+ toValue: qrSize - lineWidth,
198
+ // Move to right edge
199
+ duration: 1500,
200
+ easing: Easing.inOut(Easing.linear),
201
+ useNativeDriver: true
202
+ }), Animated.timing(lineAnim, {
203
+ toValue: 0,
204
+ // Move back to left
205
+ duration: 1500,
206
+ easing: Easing.inOut(Easing.linear),
207
+ useNativeDriver: true
208
+ })])).start();
209
+ // }
210
+ }, []);
211
+ useEffect(() => {
212
+ if (hasPermission && device && isForeground) {
213
+ const timer = setTimeout(() => {
214
+ setIsActive(true);
215
+ }, 500);
216
+ return () => clearTimeout(timer);
217
+ }
218
+ return undefined;
219
+ }, [hasPermission, device, isForeground]);
220
+ const checkCameraPermission = async () => {
221
+ try {
222
+ const permission = await Camera.getCameraPermissionStatus();
223
+ console.log('Current permission status:', permission);
224
+ if (permission === 'granted') {
225
+ setHasPermission(true);
226
+ } else if (permission === 'not-determined') {
227
+ const newPermission = await Camera.requestCameraPermission();
228
+ console.log('New permission status:', newPermission);
229
+ setHasPermission(newPermission === 'granted');
230
+ } else {
231
+ setHasPermission(false);
232
+ }
233
+ } catch (error) {
234
+ console.error('Permission check error:', error);
235
+ setHasPermission(false);
236
+ }
237
+ };
238
+ const requestPermission = async () => {
239
+ try {
240
+ const permission = await Camera.requestCameraPermission();
241
+ console.log('Requested permission:', permission);
242
+ if (permission === 'denied') {
243
+ Alert.alert('Permission Required', 'Camera permission is required to scan QR codes. Please enable it in settings.', [{
244
+ text: 'Cancel',
245
+ style: 'cancel'
246
+ }, {
247
+ text: 'Open Settings',
248
+ onPress: () => Linking.openSettings()
249
+ }]);
250
+ setHasPermission(false);
251
+ } else if (permission === 'granted') {
252
+ setHasPermission(true);
253
+ }
254
+ } catch (error) {
255
+ console.error('Permission request error:', error);
256
+ setHasPermission(false);
257
+ }
258
+ };
259
+ const handleQrData = data => {
260
+ console.log('QR Code Data:', data);
261
+ const payload = {
262
+ accountNo: data?.accountNo,
263
+ bank: data?.bankName,
264
+ accountDetail: data?.accountName,
265
+ channel: 'qr',
266
+ amount: data?.amount,
267
+ remark: data?.description
268
+ };
269
+ console.log('Qr details:', payload);
270
+ onProcessTransaction?.(payload);
271
+ };
272
+ const scanQrFromGallery = async () => {
273
+ try {
274
+ // Open gallery
275
+ const result = await launchImageLibrary({
276
+ mediaType: 'photo',
277
+ quality: 1
278
+ });
279
+ if (result.didCancel || !result.assets || !result.assets[0].uri) {
280
+ return;
281
+ }
282
+ const imageUri = result.assets[0].uri;
283
+ const barcodes = await QRKit.decodeQR(imageUri);
284
+ if (barcodes?.success) {
285
+ Vibration.vibrate(100);
286
+ await handleQrData(JSON.parse(barcodes?.data));
287
+ } else {
288
+ Alert.alert('Error:', barcodes?.message);
289
+ }
290
+ } catch (error) {
291
+ console.error('QR Scan Error:', error);
292
+ }
293
+ };
294
+ const codeScanner = useCodeScanner({
295
+ codeTypes: ['qr', 'ean-13'],
296
+ onCodeScanned: codes => {
297
+ if (isScanning && codes.length > 0) {
298
+ const qrData = codes[0].value;
299
+ setScannedData(qrData);
300
+ setIsScanning(false);
301
+
302
+ // Vibrate on scan (optional)
303
+ Vibration.vibrate(100);
304
+ console.log('Scanned QR Code:', JSON.parse(qrData));
305
+ // Show alert with scanned data
306
+ handleQrData(JSON.parse(qrData));
307
+ }
308
+ }
309
+ });
310
+
311
+ // useEffect(() => {
312
+ // setLoading(true);
313
+ // nqrAPI.generate({ amount: amount ? amount * 100 : undefined, currency })
314
+ // .then(setQr).catch(e => onError?.(e)).finally(() => setLoading(false));
315
+ // }, []);
316
+
317
+ const renderCamera = () => {
318
+ console.log('Render camera - hasPermission:', hasPermission, 'device:', !!device, 'isActive:', isActive);
319
+ if (hasPermission === null) {
320
+ return /*#__PURE__*/_jsx(CameraPlaceholder, {
321
+ children: /*#__PURE__*/_jsx(PlaceholderText, {
322
+ children: "Checking camera permission..."
323
+ })
324
+ });
325
+ }
326
+ if (!hasPermission) {
327
+ return /*#__PURE__*/_jsxs(CameraPlaceholder, {
328
+ children: [/*#__PURE__*/_jsx(PlaceholderText, {
329
+ children: "Camera permission is required to scan QR codes"
330
+ }), /*#__PURE__*/_jsx(PermissionButton, {
331
+ onPress: requestPermission,
332
+ children: /*#__PURE__*/_jsx(PermissionButtonText, {
333
+ children: "Grant Permission"
334
+ })
335
+ })]
336
+ });
337
+ }
338
+ if (!device) {
339
+ return /*#__PURE__*/_jsx(CameraPlaceholder, {
340
+ children: /*#__PURE__*/_jsx(PlaceholderText, {
341
+ children: "Loading camera..."
342
+ })
343
+ });
344
+ }
345
+ if (!isActive) {
346
+ return /*#__PURE__*/_jsx(CameraPlaceholder, {
347
+ children: /*#__PURE__*/_jsx(PlaceholderText, {
348
+ children: "Initializing camera..."
349
+ })
350
+ });
351
+ }
352
+ return /*#__PURE__*/_jsx(StyledCamera, {
353
+ device: device,
354
+ isActive: true,
355
+ codeScanner: codeScanner,
356
+ enableZoomGesture: true,
357
+ torch: torch ? 'on' : 'off'
358
+ });
359
+ };
360
+ return /*#__PURE__*/_jsxs(Container, {
361
+ children: [/*#__PURE__*/_jsxs(Header, {
362
+ children: [/*#__PURE__*/_jsx(HeaderButton, {
363
+ onPress: onClose,
364
+ children: /*#__PURE__*/_jsx(Ionicons, {
365
+ name: "close",
366
+ size: 24
367
+ })
368
+ }), /*#__PURE__*/_jsxs(HeaderCenter, {
369
+ children: [/*#__PURE__*/_jsx(Text, {
370
+ style: {
371
+ fontWeight: 'bold',
372
+ fontSize: 16,
373
+ color: '#FFF'
374
+ },
375
+ children: "QRIS"
376
+ }), /*#__PURE__*/_jsx(Text, {
377
+ style: {
378
+ fontSize: 10,
379
+ color: '#FFF'
380
+ },
381
+ children: "QB Code Standar"
382
+ })]
383
+ }), /*#__PURE__*/_jsxs(HeaderRight, {
384
+ children: [/*#__PURE__*/_jsx(HeaderButton, {
385
+ onPress: scanQrFromGallery,
386
+ children: /*#__PURE__*/_jsx(Ionicons, {
387
+ name: "image-outline",
388
+ size: 22
389
+ })
390
+ }), /*#__PURE__*/_jsx(HeaderButton, {
391
+ children: /*#__PURE__*/_jsx(Ionicons, {
392
+ name: "settings-outline",
393
+ size: 22
394
+ })
395
+ })]
396
+ })]
397
+ }), /*#__PURE__*/_jsxs(CameraContainer, {
398
+ onLayout: () => setLayoutReady(true),
399
+ children: [renderCamera(), hasPermission && device && isActive && /*#__PURE__*/_jsxs(ScanOverlay, {
400
+ pointerEvents: "none",
401
+ children: [/*#__PURE__*/_jsxs(ScanFrame, {
402
+ children: [/*#__PURE__*/_jsx(CornerBorder, {
403
+ position: "topLeft"
404
+ }), /*#__PURE__*/_jsx(CornerBorder, {
405
+ position: "topRight"
406
+ }), /*#__PURE__*/_jsx(CornerBorder, {
407
+ position: "bottomLeft"
408
+ }), /*#__PURE__*/_jsx(CornerBorder, {
409
+ position: "bottomRight"
410
+ }), /*#__PURE__*/_jsx(Animated.View, {
411
+ style: [styles.scanningLine, {
412
+ transform: [{
413
+ translateX: lineAnim
414
+ }]
415
+ }]
416
+ })]
417
+ }), /*#__PURE__*/_jsx(ScanInstructionText, {
418
+ children: isScanning ? 'Point camera at QR code' : 'QR Code Detected!'
419
+ })]
420
+ }), scannedData && /*#__PURE__*/_jsx(ScannedDataContainer, {
421
+ children: /*#__PURE__*/_jsxs(ScannedDataText, {
422
+ children: ["Scanned: ", scannedData]
423
+ })
424
+ })]
425
+ })]
426
+ });
427
+ }
428
+ const qrSize = width * 0.75;
429
+ const styles = StyleSheet.create({
430
+ scanningLine: {
431
+ height: qrSize,
432
+ width: 2,
433
+ backgroundColor: '#10b981',
434
+ position: 'absolute',
435
+ top: 0,
436
+ left: 0,
437
+ borderRadius: 1
438
+ }
439
+ });
440
+ //# sourceMappingURL=NQRSubScreen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useEffect","useState","View","Text","StyleSheet","TouchableOpacity","Dimensions","Animated","Easing","Alert","Vibration","Linking","Camera","useCameraDevice","useCodeScanner","styled","launchImageLibrary","QRKit","Ionicons","useIsForeground","jsx","_jsx","jsxs","_jsxs","width","height","get","Container","Header","HeaderButton","HeaderCenter","HeaderRight","CameraContainer","StyledCamera","CameraPlaceholder","PlaceholderText","PermissionButton","PermissionButtonText","ScanOverlay","ScanOverlays","ScanFrame","CornerBorder","props","position","ScanLineContainer","ScanLine","ScanInstructionText","ScannedDataContainer","ScannedDataText","NQRSubScreen","amount","currency","onClose","onProcessTransaction","onError","hasPermission","setHasPermission","scannedData","setScannedData","isScanning","setIsScanning","torch","setTorch","layoutReady","setLayoutReady","isActive","setIsActive","isForeground","lineAnim","useRef","Value","current","lineWidth","device","physicalDevices","checkCameraPermission","loop","sequence","timing","toValue","qrSize","duration","easing","inOut","linear","useNativeDriver","start","timer","setTimeout","clearTimeout","undefined","permission","getCameraPermissionStatus","console","log","newPermission","requestCameraPermission","error","requestPermission","alert","text","style","onPress","openSettings","handleQrData","data","payload","accountNo","bank","bankName","accountDetail","accountName","channel","remark","description","scanQrFromGallery","result","mediaType","quality","didCancel","assets","uri","imageUri","barcodes","decodeQR","success","vibrate","JSON","parse","message","codeScanner","codeTypes","onCodeScanned","codes","length","qrData","value","renderCamera","children","enableZoomGesture","name","size","fontWeight","fontSize","color","onLayout","pointerEvents","styles","scanningLine","transform","translateX","create","backgroundColor","top","left","borderRadius"],"sourceRoot":"../../../../../../src","sources":["ui/screens/sub/sendPayment/NQRSubScreen.tsx"],"mappings":"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","ignoreList":[]}
@@ -3,13 +3,10 @@
3
3
  import React, { useState, useEffect, useRef } from 'react';
4
4
  import styled from 'styled-components/native';
5
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";
6
+ import { View, Text, TouchableOpacity, Animated, Easing } from 'react-native';
7
+ import NearbyUsersService from "../../../../engine/NearbyUsersService.js";
8
+ import { PulseAnimation } from "../../../components/PulseAnimation.js";
11
9
  import Ionicons from 'react-native-vector-icons/Ionicons';
12
- import LoadingAnimation from "../../components/LoadingAnimation/index.js";
13
10
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
14
11
  const Container = styled(View)`
15
12
  flex: 1;
@@ -262,8 +259,8 @@ const ProximityIcon = ({
262
259
  export function ProximitySubScreen({
263
260
  amount,
264
261
  currency,
265
- onDone,
266
- onSuccess,
262
+ onClose,
263
+ onProcessTransaction,
267
264
  onError
268
265
  }) {
269
266
  const [nearbyUsers, setNearbyUsers] = useState([]);
@@ -283,32 +280,17 @@ export function ProximitySubScreen({
283
280
  };
284
281
  const handlePayment = async selected => {
285
282
  if (!selected) return;
286
- setLoading(true);
287
283
  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',
284
+ const payload = {
285
+ amount: amount,
286
+ currency: currency,
298
287
  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();
288
+ narration: `Send ${currency}${amount} to ${selected.displayName}`,
289
+ recipient: selected
290
+ };
291
+ onProcessTransaction?.(payload);
308
292
  } catch (e) {
309
293
  onError?.(e);
310
- } finally {
311
- setLoading(false);
312
294
  }
313
295
  };
314
296
  useEffect(() => {
@@ -337,8 +319,14 @@ export function ProximitySubScreen({
337
319
  };
338
320
  }, [scanning]);
339
321
  return /*#__PURE__*/_jsxs(Container, {
340
- children: [loading && /*#__PURE__*/_jsx(LoadingAnimation, {}), /*#__PURE__*/_jsxs(Header, {
341
- children: [/*#__PURE__*/_jsxs(HeaderCenter, {
322
+ children: [/*#__PURE__*/_jsxs(Header, {
323
+ children: [/*#__PURE__*/_jsx(HeaderButton, {
324
+ onPress: onClose,
325
+ children: /*#__PURE__*/_jsx(Ionicons, {
326
+ name: "close",
327
+ size: 24
328
+ })
329
+ }), /*#__PURE__*/_jsxs(HeaderCenter, {
342
330
  children: [/*#__PURE__*/_jsx(Text, {
343
331
  style: {
344
332
  fontWeight: 'bold',
@@ -419,83 +407,4 @@ export function ProximitySubScreen({
419
407
  })]
420
408
  });
421
409
  }
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
410
  //# sourceMappingURL=ProximitySubScreen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useState","useEffect","useRef","styled","Svg","Path","View","Text","TouchableOpacity","Animated","Easing","NearbyUsersService","PulseAnimation","Ionicons","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","onClose","onProcessTransaction","onError","nearbyUsers","setNearbyUsers","loading","setLoading","scanning","setScanning","iconScale","Value","current","animationRef","handleScan","users","getNearbyUsers","error","console","handlePayment","selected","payload","channel","narration","displayName","recipient","e","loop","sequence","timing","toValue","duration","easing","inOut","ease","useNativeDriver","start","stop","stopAnimation","setValue","onPress","name","style","fontWeight","fontSize","length","transform","scale","marginTop","showsVerticalScrollIndicator","map","user","userName","appName","Math","round","distance","activeOpacity","userId"],"sourceRoot":"../../../../../../src","sources":["ui/screens/sub/sendPayment/ProximitySubScreen.tsx"],"mappings":"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","ignoreList":[]}