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,291 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React, { useState } from 'react';
|
|
4
|
+
import { View, Text, TouchableOpacity, StyleSheet, ScrollView } from 'react-native';
|
|
5
|
+
import { C, R, S, F, shadow } from "../theme/index.js";
|
|
6
|
+
import { NQRSubScreen } from "./sub/NQRSubScreen.js";
|
|
7
|
+
import { NFCSubScreen } from "./sub/NFCSubScreen.js";
|
|
8
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
9
|
+
const CHANNELS = [{
|
|
10
|
+
id: 'transfer',
|
|
11
|
+
emoji: '🏦',
|
|
12
|
+
title: 'Bank Transfer',
|
|
13
|
+
desc: 'Share your account number'
|
|
14
|
+
}, {
|
|
15
|
+
id: 'nqr',
|
|
16
|
+
emoji: '⬛',
|
|
17
|
+
title: 'NQR Code',
|
|
18
|
+
desc: 'Generate a QR for others to scan'
|
|
19
|
+
}, {
|
|
20
|
+
id: 'nfc',
|
|
21
|
+
emoji: '📲',
|
|
22
|
+
title: 'NFC Tap',
|
|
23
|
+
desc: 'Let someone tap to pay you'
|
|
24
|
+
}];
|
|
25
|
+
export function ReceiveScreen({
|
|
26
|
+
amount,
|
|
27
|
+
currency = 'NGN',
|
|
28
|
+
user,
|
|
29
|
+
onClose,
|
|
30
|
+
onPaymentReceived,
|
|
31
|
+
onError
|
|
32
|
+
}) {
|
|
33
|
+
const [channel, setChannel] = useState(null);
|
|
34
|
+
const myWallet = {
|
|
35
|
+
accountName: user.accountName,
|
|
36
|
+
accountNumber: user.accountNumber,
|
|
37
|
+
bankName: user.bankName,
|
|
38
|
+
bankCode: user.bankCode
|
|
39
|
+
};
|
|
40
|
+
if (channel === 'nqr') return /*#__PURE__*/_jsx(NQRSubScreen, {
|
|
41
|
+
mode: "receive",
|
|
42
|
+
amount: amount,
|
|
43
|
+
currency: currency,
|
|
44
|
+
onBack: () => setChannel(null),
|
|
45
|
+
onDone: onClose,
|
|
46
|
+
onError: onError
|
|
47
|
+
});
|
|
48
|
+
if (channel === 'nfc') return /*#__PURE__*/_jsx(NFCSubScreen, {
|
|
49
|
+
mode: "receive",
|
|
50
|
+
myWallet: myWallet,
|
|
51
|
+
onBack: () => setChannel(null),
|
|
52
|
+
onDone: onClose,
|
|
53
|
+
onError: onError
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
// Transfer — just show account details inline
|
|
57
|
+
if (channel === 'transfer') return /*#__PURE__*/_jsxs(View, {
|
|
58
|
+
style: styles.container,
|
|
59
|
+
children: [/*#__PURE__*/_jsx(TouchableOpacity, {
|
|
60
|
+
onPress: () => setChannel(null),
|
|
61
|
+
style: styles.back,
|
|
62
|
+
children: /*#__PURE__*/_jsx(Text, {
|
|
63
|
+
style: styles.backText,
|
|
64
|
+
children: "\u2039 Back"
|
|
65
|
+
})
|
|
66
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
67
|
+
style: styles.sectionTitle,
|
|
68
|
+
children: "Your Account Details"
|
|
69
|
+
}), /*#__PURE__*/_jsxs(View, {
|
|
70
|
+
style: styles.accountCard,
|
|
71
|
+
children: [/*#__PURE__*/_jsx(Row, {
|
|
72
|
+
label: "Account Name",
|
|
73
|
+
value: user.accountName
|
|
74
|
+
}), /*#__PURE__*/_jsx(Row, {
|
|
75
|
+
label: "Account Number",
|
|
76
|
+
value: user.accountNumber,
|
|
77
|
+
large: true,
|
|
78
|
+
copyable: true
|
|
79
|
+
}), /*#__PURE__*/_jsx(Row, {
|
|
80
|
+
label: "Bank",
|
|
81
|
+
value: user.bankName
|
|
82
|
+
}), amount && /*#__PURE__*/_jsx(Row, {
|
|
83
|
+
label: "Expected Amount",
|
|
84
|
+
value: `${currency} ${amount.toLocaleString('en-NG', {
|
|
85
|
+
minimumFractionDigits: 2
|
|
86
|
+
})}`,
|
|
87
|
+
highlight: true
|
|
88
|
+
})]
|
|
89
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
90
|
+
style: styles.hint,
|
|
91
|
+
children: "Share these details with whoever is paying you"
|
|
92
|
+
})]
|
|
93
|
+
});
|
|
94
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
95
|
+
style: styles.container,
|
|
96
|
+
children: [amount && /*#__PURE__*/_jsxs(View, {
|
|
97
|
+
style: styles.amountBanner,
|
|
98
|
+
children: [/*#__PURE__*/_jsx(Text, {
|
|
99
|
+
style: styles.amountLabel,
|
|
100
|
+
children: "Receiving"
|
|
101
|
+
}), /*#__PURE__*/_jsxs(Text, {
|
|
102
|
+
style: styles.amountValue,
|
|
103
|
+
children: [currency, " ", amount.toLocaleString('en-NG', {
|
|
104
|
+
minimumFractionDigits: 2
|
|
105
|
+
})]
|
|
106
|
+
})]
|
|
107
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
108
|
+
style: styles.sectionTitle,
|
|
109
|
+
children: "How do you want to receive?"
|
|
110
|
+
}), /*#__PURE__*/_jsx(ScrollView, {
|
|
111
|
+
showsVerticalScrollIndicator: false,
|
|
112
|
+
contentContainerStyle: styles.list,
|
|
113
|
+
children: CHANNELS.map(ch => /*#__PURE__*/_jsxs(TouchableOpacity, {
|
|
114
|
+
style: styles.card,
|
|
115
|
+
onPress: () => setChannel(ch.id),
|
|
116
|
+
activeOpacity: 0.8,
|
|
117
|
+
children: [/*#__PURE__*/_jsx(View, {
|
|
118
|
+
style: styles.cardIcon,
|
|
119
|
+
children: /*#__PURE__*/_jsx(Text, {
|
|
120
|
+
style: styles.cardEmoji,
|
|
121
|
+
children: ch.emoji
|
|
122
|
+
})
|
|
123
|
+
}), /*#__PURE__*/_jsxs(View, {
|
|
124
|
+
style: styles.cardText,
|
|
125
|
+
children: [/*#__PURE__*/_jsx(Text, {
|
|
126
|
+
style: styles.cardTitle,
|
|
127
|
+
children: ch.title
|
|
128
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
129
|
+
style: styles.cardDesc,
|
|
130
|
+
children: ch.desc
|
|
131
|
+
})]
|
|
132
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
133
|
+
style: styles.arrow,
|
|
134
|
+
children: "\u203A"
|
|
135
|
+
})]
|
|
136
|
+
}, ch.id))
|
|
137
|
+
})]
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
function Row({
|
|
141
|
+
label,
|
|
142
|
+
value,
|
|
143
|
+
large,
|
|
144
|
+
copyable,
|
|
145
|
+
highlight
|
|
146
|
+
}) {
|
|
147
|
+
const [copied, setCopied] = React.useState(false);
|
|
148
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
149
|
+
style: rowStyles.row,
|
|
150
|
+
children: [/*#__PURE__*/_jsx(Text, {
|
|
151
|
+
style: rowStyles.label,
|
|
152
|
+
children: label
|
|
153
|
+
}), /*#__PURE__*/_jsx(TouchableOpacity, {
|
|
154
|
+
onPress: copyable ? () => {
|
|
155
|
+
require('react-native').Clipboard.setString(value);
|
|
156
|
+
setCopied(true);
|
|
157
|
+
setTimeout(() => setCopied(false), 2000);
|
|
158
|
+
} : undefined,
|
|
159
|
+
children: /*#__PURE__*/_jsxs(Text, {
|
|
160
|
+
style: [rowStyles.value, large && rowStyles.large, highlight && rowStyles.highlight],
|
|
161
|
+
children: [value, copyable && /*#__PURE__*/_jsxs(Text, {
|
|
162
|
+
style: rowStyles.copy,
|
|
163
|
+
children: [" ", copied ? '✓' : 'Copy']
|
|
164
|
+
})]
|
|
165
|
+
})
|
|
166
|
+
})]
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
const rowStyles = StyleSheet.create({
|
|
170
|
+
row: {
|
|
171
|
+
paddingVertical: S.sm,
|
|
172
|
+
borderBottomWidth: 1,
|
|
173
|
+
borderBottomColor: C.border
|
|
174
|
+
},
|
|
175
|
+
label: {
|
|
176
|
+
fontSize: F.xs,
|
|
177
|
+
color: C.muted,
|
|
178
|
+
marginBottom: 2
|
|
179
|
+
},
|
|
180
|
+
value: {
|
|
181
|
+
fontSize: F.md,
|
|
182
|
+
color: C.ink,
|
|
183
|
+
fontWeight: '600'
|
|
184
|
+
},
|
|
185
|
+
large: {
|
|
186
|
+
fontSize: F.xl,
|
|
187
|
+
fontWeight: '800',
|
|
188
|
+
letterSpacing: 2
|
|
189
|
+
},
|
|
190
|
+
highlight: {
|
|
191
|
+
color: C.green,
|
|
192
|
+
fontWeight: '800'
|
|
193
|
+
},
|
|
194
|
+
copy: {
|
|
195
|
+
fontSize: F.sm,
|
|
196
|
+
color: C.brand,
|
|
197
|
+
fontWeight: '700'
|
|
198
|
+
}
|
|
199
|
+
});
|
|
200
|
+
const styles = StyleSheet.create({
|
|
201
|
+
container: {
|
|
202
|
+
flex: 1,
|
|
203
|
+
padding: S.lg
|
|
204
|
+
},
|
|
205
|
+
back: {
|
|
206
|
+
marginBottom: S.md
|
|
207
|
+
},
|
|
208
|
+
backText: {
|
|
209
|
+
color: C.brand,
|
|
210
|
+
fontSize: F.md,
|
|
211
|
+
fontWeight: '600'
|
|
212
|
+
},
|
|
213
|
+
amountBanner: {
|
|
214
|
+
backgroundColor: C.greenLight,
|
|
215
|
+
borderRadius: R.xl,
|
|
216
|
+
padding: S.lg,
|
|
217
|
+
alignItems: 'center',
|
|
218
|
+
marginBottom: S.lg
|
|
219
|
+
},
|
|
220
|
+
amountLabel: {
|
|
221
|
+
color: C.green,
|
|
222
|
+
fontSize: F.sm,
|
|
223
|
+
marginBottom: 4
|
|
224
|
+
},
|
|
225
|
+
amountValue: {
|
|
226
|
+
color: C.green,
|
|
227
|
+
fontSize: F.hero,
|
|
228
|
+
fontWeight: '800'
|
|
229
|
+
},
|
|
230
|
+
sectionTitle: {
|
|
231
|
+
fontSize: F.sm,
|
|
232
|
+
color: C.muted,
|
|
233
|
+
fontWeight: '600',
|
|
234
|
+
letterSpacing: 0.6,
|
|
235
|
+
textTransform: 'uppercase',
|
|
236
|
+
marginBottom: S.md
|
|
237
|
+
},
|
|
238
|
+
list: {
|
|
239
|
+
paddingBottom: S.xl
|
|
240
|
+
},
|
|
241
|
+
card: {
|
|
242
|
+
flexDirection: 'row',
|
|
243
|
+
alignItems: 'center',
|
|
244
|
+
backgroundColor: C.surface,
|
|
245
|
+
borderRadius: R.lg,
|
|
246
|
+
padding: S.md,
|
|
247
|
+
marginBottom: S.sm,
|
|
248
|
+
...shadow.sm
|
|
249
|
+
},
|
|
250
|
+
cardIcon: {
|
|
251
|
+
width: 48,
|
|
252
|
+
height: 48,
|
|
253
|
+
borderRadius: R.md,
|
|
254
|
+
backgroundColor: C.white,
|
|
255
|
+
justifyContent: 'center',
|
|
256
|
+
alignItems: 'center',
|
|
257
|
+
marginRight: S.md
|
|
258
|
+
},
|
|
259
|
+
cardEmoji: {
|
|
260
|
+
fontSize: 24
|
|
261
|
+
},
|
|
262
|
+
cardText: {
|
|
263
|
+
flex: 1
|
|
264
|
+
},
|
|
265
|
+
cardTitle: {
|
|
266
|
+
fontSize: F.md,
|
|
267
|
+
fontWeight: '700',
|
|
268
|
+
color: C.ink
|
|
269
|
+
},
|
|
270
|
+
cardDesc: {
|
|
271
|
+
fontSize: F.sm,
|
|
272
|
+
color: C.muted,
|
|
273
|
+
marginTop: 2
|
|
274
|
+
},
|
|
275
|
+
arrow: {
|
|
276
|
+
fontSize: F.xl,
|
|
277
|
+
color: C.ghost
|
|
278
|
+
},
|
|
279
|
+
accountCard: {
|
|
280
|
+
backgroundColor: C.surface,
|
|
281
|
+
borderRadius: R.lg,
|
|
282
|
+
padding: S.md,
|
|
283
|
+
marginBottom: S.md
|
|
284
|
+
},
|
|
285
|
+
hint: {
|
|
286
|
+
fontSize: F.sm,
|
|
287
|
+
color: C.muted,
|
|
288
|
+
textAlign: 'center'
|
|
289
|
+
}
|
|
290
|
+
});
|
|
291
|
+
//# sourceMappingURL=ReceiveScreen.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","useState","View","Text","TouchableOpacity","StyleSheet","ScrollView","C","R","S","F","shadow","NQRSubScreen","NFCSubScreen","jsx","_jsx","jsxs","_jsxs","CHANNELS","id","emoji","title","desc","ReceiveScreen","amount","currency","user","onClose","onPaymentReceived","onError","channel","setChannel","myWallet","accountName","accountNumber","bankName","bankCode","mode","onBack","onDone","style","styles","container","children","onPress","back","backText","sectionTitle","accountCard","Row","label","value","large","copyable","toLocaleString","minimumFractionDigits","highlight","hint","amountBanner","amountLabel","amountValue","showsVerticalScrollIndicator","contentContainerStyle","list","map","ch","card","activeOpacity","cardIcon","cardEmoji","cardText","cardTitle","cardDesc","arrow","copied","setCopied","rowStyles","row","require","Clipboard","setString","setTimeout","undefined","copy","create","paddingVertical","sm","borderBottomWidth","borderBottomColor","border","fontSize","xs","color","muted","marginBottom","md","ink","fontWeight","xl","letterSpacing","green","brand","flex","padding","lg","backgroundColor","greenLight","borderRadius","alignItems","hero","textTransform","paddingBottom","flexDirection","surface","width","height","white","justifyContent","marginRight","marginTop","ghost","textAlign"],"sourceRoot":"../../../../src","sources":["ui/screens/ReceiveScreen.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
// ─────────────────────────────────────────────
|
|
4
|
+
// Send Money Screen
|
|
5
|
+
// Shows channel selection, then opens the
|
|
6
|
+
// relevant sub-screen in the same modal sheet
|
|
7
|
+
// ─────────────────────────────────────────────
|
|
8
|
+
import React, { useState } from 'react';
|
|
9
|
+
import { View, Text, TouchableOpacity, StyleSheet, ScrollView } from 'react-native';
|
|
10
|
+
import { C, R, S, F, shadow } from "../theme/index.js";
|
|
11
|
+
import { TransferSubScreen } from "./sub/TransferSubScreen.js";
|
|
12
|
+
import { NQRSubScreen } from "./sub/NQRSubScreen.js";
|
|
13
|
+
import { ProximitySubScreen } from "./sub/ProximitySubScreen.js";
|
|
14
|
+
import { BluetoothSubScreen } from "./sub/BluetoothSubScreen.js";
|
|
15
|
+
import { NFCSubScreen } from "./sub/NFCSubScreen.js";
|
|
16
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
17
|
+
const CHANNELS = [{
|
|
18
|
+
id: 'transfer',
|
|
19
|
+
emoji: '🏦',
|
|
20
|
+
title: 'Bank Transfer',
|
|
21
|
+
desc: 'Send to any Nigerian bank account'
|
|
22
|
+
}, {
|
|
23
|
+
id: 'nqr',
|
|
24
|
+
emoji: '⬛',
|
|
25
|
+
title: 'NQR Scan',
|
|
26
|
+
desc: 'Scan a merchant or person QR code'
|
|
27
|
+
}, {
|
|
28
|
+
id: 'proximity',
|
|
29
|
+
emoji: '📡',
|
|
30
|
+
title: 'Nearby',
|
|
31
|
+
desc: 'People within 100m of you'
|
|
32
|
+
}, {
|
|
33
|
+
id: 'bluetooth',
|
|
34
|
+
emoji: '📶',
|
|
35
|
+
title: 'Bluetooth',
|
|
36
|
+
desc: 'Pair wirelessly and send'
|
|
37
|
+
}, {
|
|
38
|
+
id: 'nfc',
|
|
39
|
+
emoji: '📲',
|
|
40
|
+
title: 'NFC Tap',
|
|
41
|
+
desc: 'Tap another phone to pay'
|
|
42
|
+
}];
|
|
43
|
+
export function SendScreen({
|
|
44
|
+
amount,
|
|
45
|
+
currency,
|
|
46
|
+
onClose,
|
|
47
|
+
onPaymentSent,
|
|
48
|
+
onError
|
|
49
|
+
}) {
|
|
50
|
+
const [channel, setChannel] = useState(null);
|
|
51
|
+
const formatted = `${currency} ${amount.toLocaleString('en-NG', {
|
|
52
|
+
minimumFractionDigits: 2
|
|
53
|
+
})}`;
|
|
54
|
+
if (channel === 'transfer') return /*#__PURE__*/_jsx(TransferSubScreen, {
|
|
55
|
+
amount: amount,
|
|
56
|
+
currency: currency,
|
|
57
|
+
onBack: () => setChannel(null),
|
|
58
|
+
onDone: onClose,
|
|
59
|
+
onSuccess: onPaymentSent,
|
|
60
|
+
onError: onError
|
|
61
|
+
});
|
|
62
|
+
if (channel === 'nqr') return /*#__PURE__*/_jsx(NQRSubScreen, {
|
|
63
|
+
mode: "send",
|
|
64
|
+
amount: amount,
|
|
65
|
+
currency: currency,
|
|
66
|
+
onBack: () => setChannel(null),
|
|
67
|
+
onDone: onClose,
|
|
68
|
+
onSuccess: onPaymentSent,
|
|
69
|
+
onError: onError
|
|
70
|
+
});
|
|
71
|
+
if (channel === 'proximity') return /*#__PURE__*/_jsx(ProximitySubScreen, {
|
|
72
|
+
amount: amount,
|
|
73
|
+
currency: currency,
|
|
74
|
+
onBack: () => setChannel(null),
|
|
75
|
+
onDone: onClose,
|
|
76
|
+
onSuccess: onPaymentSent,
|
|
77
|
+
onError: onError
|
|
78
|
+
});
|
|
79
|
+
if (channel === 'bluetooth') return /*#__PURE__*/_jsx(BluetoothSubScreen, {
|
|
80
|
+
mode: "send",
|
|
81
|
+
amount: amount,
|
|
82
|
+
currency: currency,
|
|
83
|
+
onBack: () => setChannel(null),
|
|
84
|
+
onDone: onClose,
|
|
85
|
+
onSuccess: onPaymentSent,
|
|
86
|
+
onError: onError
|
|
87
|
+
});
|
|
88
|
+
if (channel === 'nfc') return /*#__PURE__*/_jsx(NFCSubScreen, {
|
|
89
|
+
mode: "send",
|
|
90
|
+
amount: amount,
|
|
91
|
+
currency: currency,
|
|
92
|
+
onBack: () => setChannel(null),
|
|
93
|
+
onDone: onClose,
|
|
94
|
+
onSuccess: onPaymentSent,
|
|
95
|
+
onError: onError
|
|
96
|
+
});
|
|
97
|
+
return /*#__PURE__*/_jsxs(View, {
|
|
98
|
+
style: styles.container,
|
|
99
|
+
children: [/*#__PURE__*/_jsxs(View, {
|
|
100
|
+
style: styles.amountBanner,
|
|
101
|
+
children: [/*#__PURE__*/_jsx(Text, {
|
|
102
|
+
style: styles.amountLabel,
|
|
103
|
+
children: "Sending"
|
|
104
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
105
|
+
style: styles.amountValue,
|
|
106
|
+
children: formatted
|
|
107
|
+
})]
|
|
108
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
109
|
+
style: styles.sectionTitle,
|
|
110
|
+
children: "How do you want to send?"
|
|
111
|
+
}), /*#__PURE__*/_jsx(ScrollView, {
|
|
112
|
+
showsVerticalScrollIndicator: false,
|
|
113
|
+
contentContainerStyle: styles.channelList,
|
|
114
|
+
children: CHANNELS.map(ch => /*#__PURE__*/_jsxs(TouchableOpacity, {
|
|
115
|
+
style: styles.card,
|
|
116
|
+
onPress: () => setChannel(ch.id),
|
|
117
|
+
activeOpacity: 0.8,
|
|
118
|
+
children: [/*#__PURE__*/_jsx(View, {
|
|
119
|
+
style: styles.cardIcon,
|
|
120
|
+
children: /*#__PURE__*/_jsx(Text, {
|
|
121
|
+
style: styles.cardEmoji,
|
|
122
|
+
children: ch.emoji
|
|
123
|
+
})
|
|
124
|
+
}), /*#__PURE__*/_jsxs(View, {
|
|
125
|
+
style: styles.cardText,
|
|
126
|
+
children: [/*#__PURE__*/_jsx(Text, {
|
|
127
|
+
style: styles.cardTitle,
|
|
128
|
+
children: ch.title
|
|
129
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
130
|
+
style: styles.cardDesc,
|
|
131
|
+
children: ch.desc
|
|
132
|
+
})]
|
|
133
|
+
}), /*#__PURE__*/_jsx(Text, {
|
|
134
|
+
style: styles.arrow,
|
|
135
|
+
children: "\u203A"
|
|
136
|
+
})]
|
|
137
|
+
}, ch.id))
|
|
138
|
+
})]
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
const styles = StyleSheet.create({
|
|
142
|
+
container: {
|
|
143
|
+
flex: 1
|
|
144
|
+
},
|
|
145
|
+
amountBanner: {
|
|
146
|
+
backgroundColor: C.brand,
|
|
147
|
+
marginHorizontal: S.lg,
|
|
148
|
+
borderRadius: R.xl,
|
|
149
|
+
padding: S.lg,
|
|
150
|
+
alignItems: 'center',
|
|
151
|
+
marginBottom: S.lg
|
|
152
|
+
},
|
|
153
|
+
amountLabel: {
|
|
154
|
+
color: 'rgba(255,255,255,0.7)',
|
|
155
|
+
fontSize: F.sm,
|
|
156
|
+
marginBottom: 4
|
|
157
|
+
},
|
|
158
|
+
amountValue: {
|
|
159
|
+
color: C.white,
|
|
160
|
+
fontSize: F.hero,
|
|
161
|
+
fontWeight: '800'
|
|
162
|
+
},
|
|
163
|
+
sectionTitle: {
|
|
164
|
+
fontSize: F.sm,
|
|
165
|
+
color: C.muted,
|
|
166
|
+
fontWeight: '600',
|
|
167
|
+
letterSpacing: 0.6,
|
|
168
|
+
textTransform: 'uppercase',
|
|
169
|
+
paddingHorizontal: S.lg,
|
|
170
|
+
marginBottom: S.md
|
|
171
|
+
},
|
|
172
|
+
channelList: {
|
|
173
|
+
paddingHorizontal: S.lg,
|
|
174
|
+
paddingBottom: S.xl
|
|
175
|
+
},
|
|
176
|
+
card: {
|
|
177
|
+
flexDirection: 'row',
|
|
178
|
+
alignItems: 'center',
|
|
179
|
+
backgroundColor: C.surface,
|
|
180
|
+
borderRadius: R.lg,
|
|
181
|
+
padding: S.md,
|
|
182
|
+
marginBottom: S.sm,
|
|
183
|
+
...shadow.sm
|
|
184
|
+
},
|
|
185
|
+
cardIcon: {
|
|
186
|
+
width: 48,
|
|
187
|
+
height: 48,
|
|
188
|
+
borderRadius: R.md,
|
|
189
|
+
backgroundColor: C.white,
|
|
190
|
+
justifyContent: 'center',
|
|
191
|
+
alignItems: 'center',
|
|
192
|
+
marginRight: S.md,
|
|
193
|
+
...shadow.sm
|
|
194
|
+
},
|
|
195
|
+
cardEmoji: {
|
|
196
|
+
fontSize: 24
|
|
197
|
+
},
|
|
198
|
+
cardText: {
|
|
199
|
+
flex: 1
|
|
200
|
+
},
|
|
201
|
+
cardTitle: {
|
|
202
|
+
fontSize: F.md,
|
|
203
|
+
fontWeight: '700',
|
|
204
|
+
color: C.ink
|
|
205
|
+
},
|
|
206
|
+
cardDesc: {
|
|
207
|
+
fontSize: F.sm,
|
|
208
|
+
color: C.muted,
|
|
209
|
+
marginTop: 2
|
|
210
|
+
},
|
|
211
|
+
arrow: {
|
|
212
|
+
fontSize: F.xl,
|
|
213
|
+
color: C.ghost
|
|
214
|
+
}
|
|
215
|
+
});
|
|
216
|
+
//# sourceMappingURL=SendScreen.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","useState","View","Text","TouchableOpacity","StyleSheet","ScrollView","C","R","S","F","shadow","TransferSubScreen","NQRSubScreen","ProximitySubScreen","BluetoothSubScreen","NFCSubScreen","jsx","_jsx","jsxs","_jsxs","CHANNELS","id","emoji","title","desc","SendScreen","amount","currency","onClose","onPaymentSent","onError","channel","setChannel","formatted","toLocaleString","minimumFractionDigits","onBack","onDone","onSuccess","mode","style","styles","container","children","amountBanner","amountLabel","amountValue","sectionTitle","showsVerticalScrollIndicator","contentContainerStyle","channelList","map","ch","card","onPress","activeOpacity","cardIcon","cardEmoji","cardText","cardTitle","cardDesc","arrow","create","flex","backgroundColor","brand","marginHorizontal","lg","borderRadius","xl","padding","alignItems","marginBottom","color","fontSize","sm","white","hero","fontWeight","muted","letterSpacing","textTransform","paddingHorizontal","md","paddingBottom","flexDirection","surface","width","height","justifyContent","marginRight","ink","marginTop","ghost"],"sourceRoot":"../../../../src","sources":["ui/screens/SendScreen.tsx"],"mappings":"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","ignoreList":[]}
|