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.
Files changed (167) hide show
  1. package/Fpay.podspec +20 -0
  2. package/LICENSE +20 -0
  3. package/README.md +37 -0
  4. package/android/build.gradle +67 -0
  5. package/android/src/main/AndroidManifest.xml +2 -0
  6. package/android/src/main/java/com/fpay/FpayModule.kt +15 -0
  7. package/android/src/main/java/com/fpay/FpayPackage.kt +31 -0
  8. package/ios/Fpay.h +5 -0
  9. package/ios/Fpay.mm +21 -0
  10. package/lib/module/FountainPayProvider.js +18 -0
  11. package/lib/module/FountainPayProvider.js.map +1 -0
  12. package/lib/module/core/api/client.js +47 -0
  13. package/lib/module/core/api/client.js.map +1 -0
  14. package/lib/module/core/api/index.js +35 -0
  15. package/lib/module/core/api/index.js.map +1 -0
  16. package/lib/module/core/types/index.js +4 -0
  17. package/lib/module/core/types/index.js.map +1 -0
  18. package/lib/module/engine/BLEReceiverService.js +190 -0
  19. package/lib/module/engine/BLEReceiverService.js.map +1 -0
  20. package/lib/module/engine/BLESenderService.js +259 -0
  21. package/lib/module/engine/BLESenderService.js.map +1 -0
  22. package/lib/module/engine/FPEngine.js +340 -0
  23. package/lib/module/engine/FPEngine.js.map +1 -0
  24. package/lib/module/engine/NearbyUsersService.js +87 -0
  25. package/lib/module/engine/NearbyUsersService.js.map +1 -0
  26. package/lib/module/index.js +16 -0
  27. package/lib/module/index.js.map +1 -0
  28. package/lib/module/package.json +1 -0
  29. package/lib/module/ui/components/FPButton.js +71 -0
  30. package/lib/module/ui/components/FPButton.js.map +1 -0
  31. package/lib/module/ui/components/LoadingAnimation/InLoading.js +74 -0
  32. package/lib/module/ui/components/LoadingAnimation/InLoading.js.map +1 -0
  33. package/lib/module/ui/components/LoadingAnimation/index.js +82 -0
  34. package/lib/module/ui/components/LoadingAnimation/index.js.map +1 -0
  35. package/lib/module/ui/components/OtpInput/OTPInputView.js +290 -0
  36. package/lib/module/ui/components/OtpInput/OTPInputView.js.map +1 -0
  37. package/lib/module/ui/components/OtpInput/Styles.js +20 -0
  38. package/lib/module/ui/components/OtpInput/Styles.js.map +1 -0
  39. package/lib/module/ui/components/OtpInput/helpers/codeToArray.js +7 -0
  40. package/lib/module/ui/components/OtpInput/helpers/codeToArray.js.map +1 -0
  41. package/lib/module/ui/components/OtpInput/helpers/device.js +9 -0
  42. package/lib/module/ui/components/OtpInput/helpers/device.js.map +1 -0
  43. package/lib/module/ui/components/OtpInput/helpers/styles.js +17 -0
  44. package/lib/module/ui/components/OtpInput/helpers/styles.js.map +1 -0
  45. package/lib/module/ui/components/OtpInput/helpers/types.js +4 -0
  46. package/lib/module/ui/components/OtpInput/helpers/types.js.map +1 -0
  47. package/lib/module/ui/components/OtpInput/index.js +45 -0
  48. package/lib/module/ui/components/OtpInput/index.js.map +1 -0
  49. package/lib/module/ui/components/PulseAnimation.js +61 -0
  50. package/lib/module/ui/components/PulseAnimation.js.map +1 -0
  51. package/lib/module/ui/modals/FPPaymentRequestModal.js +253 -0
  52. package/lib/module/ui/modals/FPPaymentRequestModal.js.map +1 -0
  53. package/lib/module/ui/modals/FPShell.js +180 -0
  54. package/lib/module/ui/modals/FPShell.js.map +1 -0
  55. package/lib/module/ui/screens/ReceiveScreen.js +291 -0
  56. package/lib/module/ui/screens/ReceiveScreen.js.map +1 -0
  57. package/lib/module/ui/screens/SendScreen.js +216 -0
  58. package/lib/module/ui/screens/SendScreen.js.map +1 -0
  59. package/lib/module/ui/screens/sub/BluetoothSubScreen.js +403 -0
  60. package/lib/module/ui/screens/sub/BluetoothSubScreen.js.map +1 -0
  61. package/lib/module/ui/screens/sub/NFCSubScreen.js +169 -0
  62. package/lib/module/ui/screens/sub/NFCSubScreen.js.map +1 -0
  63. package/lib/module/ui/screens/sub/NQRSubScreen.js +136 -0
  64. package/lib/module/ui/screens/sub/NQRSubScreen.js.map +1 -0
  65. package/lib/module/ui/screens/sub/ProximitySubScreen.js +501 -0
  66. package/lib/module/ui/screens/sub/ProximitySubScreen.js.map +1 -0
  67. package/lib/module/ui/screens/sub/TransferSubScreen.js +361 -0
  68. package/lib/module/ui/screens/sub/TransferSubScreen.js.map +1 -0
  69. package/lib/module/ui/theme/index.js +64 -0
  70. package/lib/module/ui/theme/index.js.map +1 -0
  71. package/lib/module/useFountainPay.js +82 -0
  72. package/lib/module/useFountainPay.js.map +1 -0
  73. package/lib/typescript/package.json +1 -0
  74. package/lib/typescript/src/FountainPayProvider.d.ts +7 -0
  75. package/lib/typescript/src/FountainPayProvider.d.ts.map +1 -0
  76. package/lib/typescript/src/core/api/client.d.ts +7 -0
  77. package/lib/typescript/src/core/api/client.d.ts.map +1 -0
  78. package/lib/typescript/src/core/api/index.d.ts +67 -0
  79. package/lib/typescript/src/core/api/index.d.ts.map +1 -0
  80. package/lib/typescript/src/core/types/index.d.ts +130 -0
  81. package/lib/typescript/src/core/types/index.d.ts.map +1 -0
  82. package/lib/typescript/src/engine/BLEReceiverService.d.ts +43 -0
  83. package/lib/typescript/src/engine/BLEReceiverService.d.ts.map +1 -0
  84. package/lib/typescript/src/engine/BLESenderService.d.ts +39 -0
  85. package/lib/typescript/src/engine/BLESenderService.d.ts.map +1 -0
  86. package/lib/typescript/src/engine/FPEngine.d.ts +24 -0
  87. package/lib/typescript/src/engine/FPEngine.d.ts.map +1 -0
  88. package/lib/typescript/src/engine/NearbyUsersService.d.ts +19 -0
  89. package/lib/typescript/src/engine/NearbyUsersService.d.ts.map +1 -0
  90. package/lib/typescript/src/index.d.ts +4 -0
  91. package/lib/typescript/src/index.d.ts.map +1 -0
  92. package/lib/typescript/src/ui/components/FPButton.d.ts +12 -0
  93. package/lib/typescript/src/ui/components/FPButton.d.ts.map +1 -0
  94. package/lib/typescript/src/ui/components/LoadingAnimation/InLoading.d.ts +7 -0
  95. package/lib/typescript/src/ui/components/LoadingAnimation/InLoading.d.ts.map +1 -0
  96. package/lib/typescript/src/ui/components/LoadingAnimation/index.d.ts +6 -0
  97. package/lib/typescript/src/ui/components/LoadingAnimation/index.d.ts.map +1 -0
  98. package/lib/typescript/src/ui/components/OtpInput/OTPInputView.d.ts +29 -0
  99. package/lib/typescript/src/ui/components/OtpInput/OTPInputView.d.ts.map +1 -0
  100. package/lib/typescript/src/ui/components/OtpInput/Styles.d.ts +330 -0
  101. package/lib/typescript/src/ui/components/OtpInput/Styles.d.ts.map +1 -0
  102. package/lib/typescript/src/ui/components/OtpInput/helpers/codeToArray.d.ts +6 -0
  103. package/lib/typescript/src/ui/components/OtpInput/helpers/codeToArray.d.ts.map +1 -0
  104. package/lib/typescript/src/ui/components/OtpInput/helpers/device.d.ts +6 -0
  105. package/lib/typescript/src/ui/components/OtpInput/helpers/device.d.ts.map +1 -0
  106. package/lib/typescript/src/ui/components/OtpInput/helpers/styles.d.ts +6 -0
  107. package/lib/typescript/src/ui/components/OtpInput/helpers/styles.d.ts.map +1 -0
  108. package/lib/typescript/src/ui/components/OtpInput/helpers/types.d.ts +84 -0
  109. package/lib/typescript/src/ui/components/OtpInput/helpers/types.d.ts.map +1 -0
  110. package/lib/typescript/src/ui/components/OtpInput/index.d.ts +9 -0
  111. package/lib/typescript/src/ui/components/OtpInput/index.d.ts.map +1 -0
  112. package/lib/typescript/src/ui/components/PulseAnimation.d.ts +2 -0
  113. package/lib/typescript/src/ui/components/PulseAnimation.d.ts.map +1 -0
  114. package/lib/typescript/src/ui/modals/FPPaymentRequestModal.d.ts +2 -0
  115. package/lib/typescript/src/ui/modals/FPPaymentRequestModal.d.ts.map +1 -0
  116. package/lib/typescript/src/ui/modals/FPShell.d.ts +2 -0
  117. package/lib/typescript/src/ui/modals/FPShell.d.ts.map +1 -0
  118. package/lib/typescript/src/ui/screens/ReceiveScreen.d.ts +10 -0
  119. package/lib/typescript/src/ui/screens/ReceiveScreen.d.ts.map +1 -0
  120. package/lib/typescript/src/ui/screens/SendScreen.d.ts +9 -0
  121. package/lib/typescript/src/ui/screens/SendScreen.d.ts.map +1 -0
  122. package/lib/typescript/src/ui/screens/sub/BluetoothSubScreen.d.ts +552 -0
  123. package/lib/typescript/src/ui/screens/sub/BluetoothSubScreen.d.ts.map +1 -0
  124. package/lib/typescript/src/ui/screens/sub/NFCSubScreen.d.ts +19 -0
  125. package/lib/typescript/src/ui/screens/sub/NFCSubScreen.d.ts.map +1 -0
  126. package/lib/typescript/src/ui/screens/sub/NQRSubScreen.d.ts +13 -0
  127. package/lib/typescript/src/ui/screens/sub/NQRSubScreen.d.ts.map +1 -0
  128. package/lib/typescript/src/ui/screens/sub/ProximitySubScreen.d.ts +552 -0
  129. package/lib/typescript/src/ui/screens/sub/ProximitySubScreen.d.ts.map +1 -0
  130. package/lib/typescript/src/ui/screens/sub/TransferSubScreen.d.ts +12 -0
  131. package/lib/typescript/src/ui/screens/sub/TransferSubScreen.d.ts.map +1 -0
  132. package/lib/typescript/src/ui/theme/index.d.ts +62 -0
  133. package/lib/typescript/src/ui/theme/index.d.ts.map +1 -0
  134. package/lib/typescript/src/useFountainPay.d.ts +3 -0
  135. package/lib/typescript/src/useFountainPay.d.ts.map +1 -0
  136. package/package.json +217 -0
  137. package/src/FountainPayProvider.tsx +21 -0
  138. package/src/core/api/client.ts +47 -0
  139. package/src/core/api/index.ts +61 -0
  140. package/src/core/types/index.ts +144 -0
  141. package/src/engine/BLEReceiverService.ts +244 -0
  142. package/src/engine/BLESenderService.ts +314 -0
  143. package/src/engine/FPEngine.ts +370 -0
  144. package/src/engine/NearbyUsersService.ts +106 -0
  145. package/src/index.ts +30 -0
  146. package/src/ui/components/FPButton.tsx +42 -0
  147. package/src/ui/components/LoadingAnimation/InLoading.tsx +88 -0
  148. package/src/ui/components/LoadingAnimation/index.tsx +93 -0
  149. package/src/ui/components/OtpInput/OTPInputView.tsx +243 -0
  150. package/src/ui/components/OtpInput/Styles.ts +19 -0
  151. package/src/ui/components/OtpInput/helpers/codeToArray.ts +3 -0
  152. package/src/ui/components/OtpInput/helpers/device.ts +6 -0
  153. package/src/ui/components/OtpInput/helpers/styles.ts +17 -0
  154. package/src/ui/components/OtpInput/helpers/types.ts +88 -0
  155. package/src/ui/components/OtpInput/index.tsx +51 -0
  156. package/src/ui/components/PulseAnimation.tsx +78 -0
  157. package/src/ui/modals/FPPaymentRequestModal.tsx +158 -0
  158. package/src/ui/modals/FPShell.tsx +107 -0
  159. package/src/ui/screens/ReceiveScreen.tsx +119 -0
  160. package/src/ui/screens/SendScreen.tsx +86 -0
  161. package/src/ui/screens/sub/BluetoothSubScreen.tsx +433 -0
  162. package/src/ui/screens/sub/NFCSubScreen.tsx +83 -0
  163. package/src/ui/screens/sub/NQRSubScreen.tsx +61 -0
  164. package/src/ui/screens/sub/ProximitySubScreen.tsx +390 -0
  165. package/src/ui/screens/sub/TransferSubScreen.tsx +146 -0
  166. package/src/ui/theme/index.ts +24 -0
  167. package/src/useFountainPay.ts +95 -0
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ import styled from "styled-components/native";
4
+ export const HideInput = styled.TextInput`
5
+ width: 80%;
6
+ margin: auto;
7
+ padding: 14px 8px;
8
+ border: 1px solid #000;
9
+ display: none;
10
+ `;
11
+ export const Otpinput = styled.View`
12
+ width: 50px;
13
+ height: 50px;
14
+ border-radius: 8px;
15
+ border: 1px solid #333;
16
+ display: flex;
17
+ align-items: center;
18
+ justify-content: center;
19
+ `;
20
+ //# sourceMappingURL=Styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["styled","HideInput","TextInput","Otpinput","View"],"sourceRoot":"../../../../../src","sources":["ui/components/OtpInput/Styles.ts"],"mappings":";;AAAA,OAAOA,MAAM,MAAM,0BAA0B;AAE7C,OAAO,MAAMC,SAAS,GAAGD,MAAM,CAACE,SAAS;AACzC;AACA;AACA;AACA;AACA;AACA,CAAC;AAED,OAAO,MAAMC,QAAQ,GAAGH,MAAM,CAACI,IAAI;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC","ignoreList":[]}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+
3
+ export const codeToArray = code => code?.split("") ?? [];
4
+ export default {
5
+ codeToArray
6
+ };
7
+ //# sourceMappingURL=codeToArray.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["codeToArray","code","split"],"sourceRoot":"../../../../../../src","sources":["ui/components/OtpInput/helpers/codeToArray.ts"],"mappings":";;AAAA,OAAO,MAAMA,WAAW,GAAIC,IAAa,IAAeA,IAAI,EAAEC,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE;AAE7E,eAAe;EAAEF;AAAY,CAAC","ignoreList":[]}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+
3
+ import { Platform } from 'react-native';
4
+ const majorVersionIOS = parseInt(String(Platform.Version), 10);
5
+ export const isAutoFillSupported = Platform.OS === 'ios' && majorVersionIOS >= 12;
6
+ export default {
7
+ isAutoFillSupported
8
+ };
9
+ //# sourceMappingURL=device.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Platform","majorVersionIOS","parseInt","String","Version","isAutoFillSupported","OS"],"sourceRoot":"../../../../../../src","sources":["ui/components/OtpInput/helpers/device.ts"],"mappings":";;AAAA,SAASA,QAAQ,QAAQ,cAAc;AAEvC,MAAMC,eAAe,GAAGC,QAAQ,CAACC,MAAM,CAACH,QAAQ,CAACI,OAAO,CAAC,EAAE,EAAE,CAAC;AAC9D,OAAO,MAAMC,mBAAmB,GAAIL,QAAQ,CAACM,EAAE,KAAK,KAAK,IAAIL,eAAe,IAAI,EAAG;AAEnF,eAAe;EAAEI;AAAoB,CAAC","ignoreList":[]}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+
3
+ import { StyleSheet } from 'react-native';
4
+ const styles = StyleSheet.create({
5
+ defaultTextFieldStyle: {
6
+ width: 65,
7
+ height: 65,
8
+ borderColor: 'rgba(226, 226, 226, 1)',
9
+ borderWidth: 1,
10
+ borderRadius: 2,
11
+ textAlign: 'center',
12
+ color: 'rgba(226, 226, 226, 1)',
13
+ marginHorizontal: 3.5
14
+ }
15
+ });
16
+ export default styles;
17
+ //# sourceMappingURL=styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["StyleSheet","styles","create","defaultTextFieldStyle","width","height","borderColor","borderWidth","borderRadius","textAlign","color","marginHorizontal"],"sourceRoot":"../../../../../../src","sources":["ui/components/OtpInput/helpers/styles.ts"],"mappings":";;AAAA,SAASA,UAAU,QAAyB,cAAc;AAG1D,MAAMC,MAAM,GAAGD,UAAU,CAACE,MAAM,CAAqC;EACjEC,qBAAqB,EAAG;IACpBC,KAAK,EAAG,EAAE;IACVC,MAAM,EAAG,EAAE;IACXC,WAAW,EAAG,wBAAwB;IACtCC,WAAW,EAAG,CAAC;IACfC,YAAY,EAAG,CAAC;IAChBC,SAAS,EAAG,QAAQ;IACpBC,KAAK,EAAE,wBAAwB;IAC/BC,gBAAgB,EAAE;EACtB;AACJ,CAAC,CAAC;AAEF,eAAeV,MAAM","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../../../../src","sources":["ui/components/OtpInput/helpers/types.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+
3
+ import { StyleSheet } from 'react-native';
4
+ // import { NumPad } from "frontatish";
5
+ import React from 'react';
6
+ import OTPInputView from "./OTPInputView.js";
7
+ import { jsx as _jsx } from "react/jsx-runtime";
8
+ export default function OTPInputs({
9
+ callBack,
10
+ pinvalue = '',
11
+ isSecure = true,
12
+ count = 4
13
+ }) {
14
+ return /*#__PURE__*/_jsx(OTPInputView, {
15
+ style: {
16
+ width: '100%',
17
+ backgroundColor: 'transparent'
18
+ },
19
+ codeInputFieldStyle: styles.underlineStyleBase,
20
+ codeInputHighlightStyle: styles.underlineStyleHighLighted,
21
+ secureTextEntry: isSecure,
22
+ pinCount: count,
23
+ autoFocusOnLoad: true,
24
+ placeholderCharacter: '',
25
+ onCodeFilled: code => {
26
+ callBack(code);
27
+ }
28
+ });
29
+ }
30
+ const styles = StyleSheet.create({
31
+ underlineStyleBase: {
32
+ width: 60,
33
+ height: 60,
34
+ borderWidth: 1,
35
+ borderStyle: 'solid',
36
+ borderColor: '#ccc',
37
+ color: '#000',
38
+ textAlign: 'center',
39
+ borderRadius: 5
40
+ },
41
+ underlineStyleHighLighted: {
42
+ borderColor: '#032b27'
43
+ }
44
+ });
45
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["StyleSheet","React","OTPInputView","jsx","_jsx","OTPInputs","callBack","pinvalue","isSecure","count","style","width","backgroundColor","codeInputFieldStyle","styles","underlineStyleBase","codeInputHighlightStyle","underlineStyleHighLighted","secureTextEntry","pinCount","autoFocusOnLoad","placeholderCharacter","onCodeFilled","code","create","height","borderWidth","borderStyle","borderColor","color","textAlign","borderRadius"],"sourceRoot":"../../../../../src","sources":["ui/components/OtpInput/index.tsx"],"mappings":";;AAAA,SAAcA,UAAU,QAAO,cAAc;AAC7C;AACA,OAAOC,KAAK,MAAM,OAAO;AACzB,OAAOC,YAAY,MAAM,mBAAgB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAS1C,eAAe,SAASC,SAASA,CAAC;EAChCC,QAAQ;EACRC,QAAQ,GAAG,EAAE;EACbC,QAAQ,GAAG,IAAI;EACfC,KAAK,GAAG;AACH,CAAC,EAAE;EAER,oBACIL,IAAA,CAACF,YAAY;IACXQ,KAAK,EAAE;MAACC,KAAK,EAAE,MAAM;MAAEC,eAAe,EAAE;IAAa,CAAE;IACvDC,mBAAmB,EAAEC,MAAM,CAACC,kBAAmB;IAC/CC,uBAAuB,EAAEF,MAAM,CAACG,yBAA0B;IAC1DC,eAAe,EAAEV,QAAS;IAC1BW,QAAQ,EAAEV,KAAM;IAChBW,eAAe;IACfC,oBAAoB,EAAE,EAAG;IACzBC,YAAY,EAAEC,IAAI,IAAI;MACpBjB,QAAQ,CAACiB,IAAI,CAAC;IAChB;EAAE,CACH,CAAC;AAER;AAEA,MAAMT,MAAM,GAAGd,UAAU,CAACwB,MAAM,CAAC;EAC7BT,kBAAkB,EAAE;IACpBJ,KAAK,EAAE,EAAE;IACTc,MAAM,EAAE,EAAE;IACVC,WAAW,EAAE,CAAC;IACdC,WAAW,EAAE,OAAO;IACpBC,WAAW,EAAE,MAAM;IACnBC,KAAK,EAAE,MAAM;IACbC,SAAS,EAAE,QAAQ;IACnBC,YAAY,EAAE;EAChB,CAAC;EAEDd,yBAAyB,EAAE;IACzBW,WAAW,EAAE;EACf;AACF,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+
3
+ import { useEffect, useRef } from "react";
4
+ import { Animated, Easing } from "react-native";
5
+ import styled from 'styled-components/native';
6
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
7
+ const PulseRing = styled(Animated.View)`
8
+ position: absolute;
9
+ width: 200px;
10
+ height: 200px;
11
+ border-radius: 100%;
12
+ border-width: 2px;
13
+ border-color: #0a3d2e;
14
+ `;
15
+
16
+ // Pulse Animation Component
17
+ export const PulseAnimation = () => {
18
+ const pulse1 = useRef(new Animated.Value(0)).current;
19
+ const pulse2 = useRef(new Animated.Value(0)).current;
20
+ const pulse3 = useRef(new Animated.Value(0)).current;
21
+ const AnimatedPulseRing = Animated.createAnimatedComponent(PulseRing);
22
+ useEffect(() => {
23
+ const createPulse = (value, delay) => {
24
+ return Animated.loop(Animated.sequence([Animated.delay(delay), Animated.parallel([Animated.timing(value, {
25
+ toValue: 1,
26
+ duration: 2000,
27
+ easing: Easing.out(Easing.ease),
28
+ useNativeDriver: true
29
+ })]), Animated.timing(value, {
30
+ toValue: 0,
31
+ duration: 0,
32
+ useNativeDriver: true
33
+ })]));
34
+ };
35
+ const animations = Animated.parallel([createPulse(pulse1, 0), createPulse(pulse2, 500), createPulse(pulse3, 1000)]);
36
+ animations.start();
37
+ return () => animations.stop();
38
+ }, []);
39
+ const pulseStyle = animValue => ({
40
+ transform: [{
41
+ scale: animValue.interpolate({
42
+ inputRange: [0, 1],
43
+ outputRange: [1, 2]
44
+ })
45
+ }],
46
+ opacity: animValue.interpolate({
47
+ inputRange: [0, 0.5, 1],
48
+ outputRange: [0.5, 0.3, 0]
49
+ })
50
+ });
51
+ return /*#__PURE__*/_jsxs(_Fragment, {
52
+ children: [/*#__PURE__*/_jsx(AnimatedPulseRing, {
53
+ style: pulseStyle(pulse1)
54
+ }), /*#__PURE__*/_jsx(AnimatedPulseRing, {
55
+ style: pulseStyle(pulse2)
56
+ }), /*#__PURE__*/_jsx(AnimatedPulseRing, {
57
+ style: pulseStyle(pulse3)
58
+ })]
59
+ });
60
+ };
61
+ //# sourceMappingURL=PulseAnimation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useEffect","useRef","Animated","Easing","styled","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","PulseRing","View","PulseAnimation","pulse1","Value","current","pulse2","pulse3","AnimatedPulseRing","createAnimatedComponent","createPulse","value","delay","loop","sequence","parallel","timing","toValue","duration","easing","out","ease","useNativeDriver","animations","start","stop","pulseStyle","animValue","transform","scale","interpolate","inputRange","outputRange","opacity","children","style"],"sourceRoot":"../../../../src","sources":["ui/components/PulseAnimation.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,253 @@
1
+ "use strict";
2
+
3
+ import React, { useEffect, useState } from 'react';
4
+ import { View, Text, Modal, StyleSheet, Animated } from 'react-native';
5
+ import { FPEngine, _onEvent } from "../../engine/FPEngine.js";
6
+ import { FPButton } from "../components/FPButton.js";
7
+ import { C, R, S, F, shadow } from "../theme/index.js";
8
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
+ export function FPPaymentRequestModal() {
10
+ const [request, setRequest] = useState(null);
11
+ const [loading, setLoading] = useState(false);
12
+ const scale = React.useRef(new Animated.Value(0.85)).current;
13
+ useEffect(() => {
14
+ const unsub = _onEvent('incoming_payment_request', req => {
15
+ setRequest(req);
16
+ Animated.spring(scale, {
17
+ toValue: 1,
18
+ useNativeDriver: true,
19
+ tension: 80,
20
+ friction: 10
21
+ }).start();
22
+ });
23
+ return unsub;
24
+ }, []);
25
+ const dismiss = () => {
26
+ scale.setValue(0.85);
27
+ setRequest(null);
28
+ setLoading(false);
29
+ };
30
+ const handleAccept = async () => {
31
+ if (!request) return;
32
+ setLoading(true);
33
+ await FPEngine.acceptPaymentRequest(request);
34
+ setLoading(false);
35
+ dismiss();
36
+ };
37
+ const handleDecline = () => {
38
+ if (!request) return;
39
+ FPEngine.declinePaymentRequest(request);
40
+ dismiss();
41
+ };
42
+ if (!request) return null;
43
+ const user = FPEngine.getUser();
44
+ const amountFormatted = (request.amount / 100).toLocaleString('en-NG', {
45
+ minimumFractionDigits: 2
46
+ });
47
+ return /*#__PURE__*/_jsx(Modal, {
48
+ visible: true,
49
+ transparent: true,
50
+ animationType: "slide",
51
+ statusBarTranslucent: true,
52
+ onRequestClose: handleDecline,
53
+ children: /*#__PURE__*/_jsx(View, {
54
+ style: {
55
+ flex: 1,
56
+ backgroundColor: 'rgba(0,0,0,0.5)',
57
+ justifyContent: 'center',
58
+ alignItems: 'center'
59
+ },
60
+ children: /*#__PURE__*/_jsx(View, {
61
+ style: {
62
+ backgroundColor: '#fff',
63
+ borderRadius: 20,
64
+ padding: 30,
65
+ width: '80%',
66
+ maxWidth: 400
67
+ },
68
+ children: /*#__PURE__*/_jsxs(Animated.View, {
69
+ style: [st.card, {
70
+ transform: [{
71
+ scale
72
+ }]
73
+ }],
74
+ children: [/*#__PURE__*/_jsx(View, {
75
+ style: st.avatar,
76
+ children: /*#__PURE__*/_jsx(Text, {
77
+ style: st.avatarText,
78
+ children: (request?.sender.accountName ?? request?.sender.deviceName ?? '?').charAt(0).toUpperCase()
79
+ })
80
+ }), /*#__PURE__*/_jsx(Text, {
81
+ style: st.headline,
82
+ children: "Payment Request"
83
+ }), /*#__PURE__*/_jsxs(View, {
84
+ style: {
85
+ marginBottom: 30
86
+ },
87
+ children: [/*#__PURE__*/_jsx(Text, {
88
+ style: {
89
+ fontSize: 18,
90
+ color: '#666',
91
+ textAlign: 'center',
92
+ marginBottom: 10
93
+ },
94
+ children: "From"
95
+ }), /*#__PURE__*/_jsx(Text, {
96
+ style: {
97
+ fontSize: 20,
98
+ fontWeight: 'bold',
99
+ textAlign: 'center',
100
+ marginBottom: 20
101
+ },
102
+ children: request.sender.accountName ?? request.sender.deviceName ?? 'Someone'
103
+ }), /*#__PURE__*/_jsx(Text, {
104
+ style: st.sub,
105
+ children: "wants to send you"
106
+ }), request.amount && /*#__PURE__*/_jsxs(View, {
107
+ style: {
108
+ backgroundColor: '#f5f5f5',
109
+ padding: 20,
110
+ borderRadius: 10,
111
+ alignItems: 'center'
112
+ },
113
+ children: [/*#__PURE__*/_jsx(Text, {
114
+ style: {
115
+ fontSize: 16,
116
+ color: '#666',
117
+ marginBottom: 5
118
+ },
119
+ children: "Amount"
120
+ }), /*#__PURE__*/_jsxs(Text, {
121
+ style: {
122
+ fontSize: 36,
123
+ fontWeight: 'bold',
124
+ color: '#4CAF50'
125
+ },
126
+ children: [request.currency, request.amount.toFixed(2)]
127
+ })]
128
+ }), request.narration ? /*#__PURE__*/_jsxs(View, {
129
+ style: st.noteBox,
130
+ children: [/*#__PURE__*/_jsx(Text, {
131
+ style: st.noteLabel,
132
+ children: "Note"
133
+ }), /*#__PURE__*/_jsx(Text, {
134
+ style: st.note,
135
+ children: request.narration
136
+ })]
137
+ }) : null, /*#__PURE__*/_jsxs(Text, {
138
+ style: st.disclaimer,
139
+ children: ["Accepting will receive into", '\n', /*#__PURE__*/_jsx(Text, {
140
+ style: {
141
+ fontWeight: '700'
142
+ },
143
+ children: user?.accountName
144
+ }), " (", user?.accountNumber, ")"]
145
+ })]
146
+ }), /*#__PURE__*/_jsxs(View, {
147
+ style: st.btnRow,
148
+ children: [/*#__PURE__*/_jsx(FPButton, {
149
+ label: "Decline",
150
+ onPress: handleDecline,
151
+ variant: "outline",
152
+ style: st.declineBtn
153
+ }), /*#__PURE__*/_jsx(FPButton, {
154
+ label: "Accept",
155
+ onPress: handleAccept,
156
+ loading: loading,
157
+ style: st.acceptBtn
158
+ })]
159
+ })]
160
+ })
161
+ })
162
+ })
163
+ });
164
+ }
165
+ const st = StyleSheet.create({
166
+ scrim: {
167
+ flex: 1,
168
+ backgroundColor: 'rgba(11,29,53,0.6)',
169
+ justifyContent: 'flex-end',
170
+ padding: S.lg,
171
+ paddingBottom: 48
172
+ },
173
+ card: {
174
+ backgroundColor: C.white,
175
+ borderRadius: 28,
176
+ padding: S.xl,
177
+ alignItems: 'center',
178
+ ...shadow.lg
179
+ },
180
+ avatar: {
181
+ width: 72,
182
+ height: 72,
183
+ borderRadius: 36,
184
+ backgroundColor: C.brandLight,
185
+ justifyContent: 'center',
186
+ alignItems: 'center',
187
+ marginBottom: S.md
188
+ },
189
+ avatarText: {
190
+ fontSize: 28,
191
+ fontWeight: '800',
192
+ color: C.brand
193
+ },
194
+ headline: {
195
+ fontSize: F.sm,
196
+ fontWeight: '700',
197
+ color: C.muted,
198
+ letterSpacing: 0.8,
199
+ textTransform: 'uppercase',
200
+ marginBottom: 4
201
+ },
202
+ sender: {
203
+ fontSize: F.xl,
204
+ fontWeight: '800',
205
+ color: C.ink
206
+ },
207
+ sub: {
208
+ fontSize: F.md,
209
+ color: C.muted,
210
+ marginBottom: S.sm
211
+ },
212
+ amount: {
213
+ fontSize: 40,
214
+ fontWeight: '800',
215
+ color: C.ink,
216
+ marginBottom: S.md
217
+ },
218
+ noteBox: {
219
+ backgroundColor: C.surface,
220
+ borderRadius: R.md,
221
+ padding: S.md,
222
+ width: '100%',
223
+ marginBottom: S.md
224
+ },
225
+ noteLabel: {
226
+ fontSize: F.xs,
227
+ color: C.muted,
228
+ marginBottom: 2
229
+ },
230
+ note: {
231
+ fontSize: F.md,
232
+ color: C.ink
233
+ },
234
+ disclaimer: {
235
+ fontSize: F.sm,
236
+ color: C.muted,
237
+ textAlign: 'center',
238
+ lineHeight: 20,
239
+ marginBottom: S.lg
240
+ },
241
+ btnRow: {
242
+ flexDirection: 'row',
243
+ gap: S.sm,
244
+ width: '100%'
245
+ },
246
+ declineBtn: {
247
+ flex: 1
248
+ },
249
+ acceptBtn: {
250
+ flex: 1
251
+ }
252
+ });
253
+ //# sourceMappingURL=FPPaymentRequestModal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useEffect","useState","View","Text","Modal","StyleSheet","Animated","FPEngine","_onEvent","FPButton","C","R","S","F","shadow","jsx","_jsx","jsxs","_jsxs","FPPaymentRequestModal","request","setRequest","loading","setLoading","scale","useRef","Value","current","unsub","req","spring","toValue","useNativeDriver","tension","friction","start","dismiss","setValue","handleAccept","acceptPaymentRequest","handleDecline","declinePaymentRequest","user","getUser","amountFormatted","amount","toLocaleString","minimumFractionDigits","visible","transparent","animationType","statusBarTranslucent","onRequestClose","children","style","flex","backgroundColor","justifyContent","alignItems","borderRadius","padding","width","maxWidth","st","card","transform","avatar","avatarText","sender","accountName","deviceName","charAt","toUpperCase","headline","marginBottom","fontSize","color","textAlign","fontWeight","sub","currency","toFixed","narration","noteBox","noteLabel","note","disclaimer","accountNumber","btnRow","label","onPress","variant","declineBtn","acceptBtn","create","scrim","lg","paddingBottom","white","xl","height","brandLight","md","brand","sm","muted","letterSpacing","textTransform","ink","surface","xs","lineHeight","flexDirection","gap"],"sourceRoot":"../../../../src","sources":["ui/modals/FPPaymentRequestModal.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,180 @@
1
+ "use strict";
2
+
3
+ // ─────────────────────────────────────────────
4
+ // FPShell — The master modal container
5
+ // Mounts invisibly at app root. Listens for
6
+ // show_send / show_receive engine events and
7
+ // renders the appropriate full-screen sheet.
8
+ // ─────────────────────────────────────────────
9
+ import React, { useEffect, useState, useRef } from 'react';
10
+ import { Modal, View, Text, TouchableOpacity, StyleSheet, Animated, Dimensions, SafeAreaView } from 'react-native';
11
+ import { _onEvent } from "../../engine/FPEngine.js";
12
+ import { SendScreen } from "../screens/SendScreen.js";
13
+ import { ReceiveScreen } from "../screens/ReceiveScreen.js";
14
+ import { FPPaymentRequestModal } from "./FPPaymentRequestModal.js";
15
+ import { FPEngine } from "../../engine/FPEngine.js";
16
+ import { C, S, F, shadow } from "../theme/index.js";
17
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
18
+ const {
19
+ height: SCREEN_H
20
+ } = Dimensions.get('window');
21
+ export function FPShell() {
22
+ const [sheet, setSheet] = useState({
23
+ mode: null
24
+ });
25
+ const slide = useRef(new Animated.Value(SCREEN_H)).current;
26
+ const open = state => {
27
+ setSheet(state);
28
+ Animated.spring(slide, {
29
+ toValue: 0,
30
+ useNativeDriver: true,
31
+ tension: 65,
32
+ friction: 11
33
+ }).start();
34
+ };
35
+ const close = () => {
36
+ Animated.timing(slide, {
37
+ toValue: SCREEN_H,
38
+ duration: 260,
39
+ useNativeDriver: true
40
+ }).start(() => {
41
+ setSheet({
42
+ mode: null
43
+ });
44
+ });
45
+ };
46
+ useEffect(() => {
47
+ const unsubSend = _onEvent('show_send', d => {
48
+ const data = d;
49
+ open({
50
+ mode: 'send',
51
+ amount: data?.amount,
52
+ currency: data?.currency
53
+ });
54
+ });
55
+ const unsubReceive = _onEvent('show_receive', d => {
56
+ const data = d;
57
+ open({
58
+ mode: 'receive',
59
+ amount: data?.amount,
60
+ currency: data?.currency
61
+ });
62
+ });
63
+ return () => {
64
+ unsubSend();
65
+ unsubReceive();
66
+ };
67
+ }, []);
68
+ const user = FPEngine.getUser();
69
+ const callbacks = FPEngine.getCallbacks();
70
+ return /*#__PURE__*/_jsxs(_Fragment, {
71
+ children: [/*#__PURE__*/_jsx(FPPaymentRequestModal, {}), /*#__PURE__*/_jsxs(Modal, {
72
+ visible: sheet.mode !== null,
73
+ transparent: true,
74
+ animationType: "none",
75
+ statusBarTranslucent: true,
76
+ onRequestClose: close,
77
+ children: [/*#__PURE__*/_jsx(TouchableOpacity, {
78
+ style: st.scrim,
79
+ activeOpacity: 1,
80
+ onPress: close
81
+ }), /*#__PURE__*/_jsx(Animated.View, {
82
+ style: [st.sheet, {
83
+ transform: [{
84
+ translateY: slide
85
+ }]
86
+ }],
87
+ children: /*#__PURE__*/_jsxs(SafeAreaView, {
88
+ style: {
89
+ flex: 1
90
+ },
91
+ children: [/*#__PURE__*/_jsx(View, {
92
+ style: st.handle
93
+ }), /*#__PURE__*/_jsxs(View, {
94
+ style: st.header,
95
+ children: [/*#__PURE__*/_jsx(Text, {
96
+ style: st.headerTitle,
97
+ children: sheet.mode === 'send' ? 'Send Money' : 'Receive Money'
98
+ }), /*#__PURE__*/_jsx(TouchableOpacity, {
99
+ onPress: close,
100
+ style: st.closeBtn,
101
+ children: /*#__PURE__*/_jsx(Text, {
102
+ style: st.closeText,
103
+ children: "Done"
104
+ })
105
+ })]
106
+ }), sheet.mode === 'send' && user && /*#__PURE__*/_jsx(SendScreen, {
107
+ amount: sheet.amount ?? 0,
108
+ currency: sheet.currency ?? 'NGN',
109
+ onClose: close,
110
+ onPaymentSent: tx => {
111
+ callbacks.onPaymentSent?.(tx);
112
+ close();
113
+ },
114
+ onError: callbacks.onError
115
+ }), sheet.mode === 'receive' && user && /*#__PURE__*/_jsx(ReceiveScreen, {
116
+ amount: sheet.amount,
117
+ currency: sheet.currency,
118
+ user: user,
119
+ onClose: close,
120
+ onPaymentReceived: callbacks.onPaymentReceived,
121
+ onError: callbacks.onError
122
+ })]
123
+ })
124
+ })]
125
+ })]
126
+ });
127
+ }
128
+ const st = StyleSheet.create({
129
+ scrim: {
130
+ position: 'absolute',
131
+ top: 0,
132
+ left: 0,
133
+ right: 0,
134
+ bottom: 0,
135
+ backgroundColor: 'rgba(11,29,53,0.55)'
136
+ },
137
+ sheet: {
138
+ position: 'absolute',
139
+ bottom: 0,
140
+ left: 0,
141
+ right: 0,
142
+ height: SCREEN_H * 0.92,
143
+ backgroundColor: C.white,
144
+ borderTopLeftRadius: 24,
145
+ borderTopRightRadius: 24,
146
+ ...shadow.lg
147
+ },
148
+ handle: {
149
+ width: 40,
150
+ height: 4,
151
+ borderRadius: 2,
152
+ backgroundColor: '#DFE1E6',
153
+ alignSelf: 'center',
154
+ marginTop: S.sm
155
+ },
156
+ header: {
157
+ flexDirection: 'row',
158
+ alignItems: 'center',
159
+ justifyContent: 'space-between',
160
+ paddingHorizontal: S.lg,
161
+ paddingVertical: S.md,
162
+ borderBottomWidth: 1,
163
+ borderBottomColor: '#DFE1E6'
164
+ },
165
+ headerTitle: {
166
+ fontSize: F.lg,
167
+ fontWeight: '800',
168
+ color: C.ink
169
+ },
170
+ closeBtn: {
171
+ paddingHorizontal: S.sm,
172
+ paddingVertical: 4
173
+ },
174
+ closeText: {
175
+ fontSize: F.md,
176
+ color: '#0052CC',
177
+ fontWeight: '700'
178
+ }
179
+ });
180
+ //# sourceMappingURL=FPShell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useEffect","useState","useRef","Modal","View","Text","TouchableOpacity","StyleSheet","Animated","Dimensions","SafeAreaView","_onEvent","SendScreen","ReceiveScreen","FPPaymentRequestModal","FPEngine","C","S","F","shadow","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","height","SCREEN_H","get","FPShell","sheet","setSheet","mode","slide","Value","current","open","state","spring","toValue","useNativeDriver","tension","friction","start","close","timing","duration","unsubSend","d","data","amount","currency","unsubReceive","user","getUser","callbacks","getCallbacks","children","visible","transparent","animationType","statusBarTranslucent","onRequestClose","style","st","scrim","activeOpacity","onPress","transform","translateY","flex","handle","header","headerTitle","closeBtn","closeText","onClose","onPaymentSent","tx","onError","onPaymentReceived","create","position","top","left","right","bottom","backgroundColor","white","borderTopLeftRadius","borderTopRightRadius","lg","width","borderRadius","alignSelf","marginTop","sm","flexDirection","alignItems","justifyContent","paddingHorizontal","paddingVertical","md","borderBottomWidth","borderBottomColor","fontSize","fontWeight","color","ink"],"sourceRoot":"../../../../src","sources":["ui/modals/FPShell.tsx"],"mappings":"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","ignoreList":[]}