react-native-fpay 0.1.1 → 0.2.4

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.
@@ -1,17 +1,124 @@
1
1
  "use strict";
2
2
 
3
- // ─────────────────────────────────────────────
3
+ // ─────────────────────────────────────────────────────────────────────────────
4
4
  // FountainPayProvider
5
- // The ONLY thing the host app mounts.
6
- // Wraps children and mounts the invisible shell.
7
- // ─────────────────────────────────────────────
8
- import React from 'react';
5
+ //
6
+ // Mount once at the root of your app and pass your API key here.
7
+ // Every component can then call useFountainPay() (no arguments) and get
8
+ // the SAME instance — no re-initialization, no prop drilling.
9
+ //
10
+ // Usage:
11
+ // <FountainPayProvider apiKey="fp_live_...">
12
+ // <YourApp />
13
+ // </FountainPayProvider>
14
+ // ─────────────────────────────────────────────────────────────────────────────
15
+ import React, { createContext, useContext, useMemo, useRef } from 'react';
9
16
  import { FPShell } from "./ui/modals/FPShell.js";
10
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
17
+ import { FPEngine } from "./engine/FPEngine.js";
18
+ import { initClient } from "./core/api/client.js";
19
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
20
+ // ── Context ───────────────────────────────────────────────────────────────────
21
+
22
+ const FountainPayContext = /*#__PURE__*/createContext(null);
23
+
24
+ // ── Hook — the only thing components import ───────────────────────────────────
25
+
26
+ /**
27
+ * Returns the shared FountainPay instance created by the nearest
28
+ * <FountainPayProvider>. No API key needed here — it was given to the provider.
29
+ *
30
+ * Call from any component:
31
+ * const pay = useFountainPay();
32
+ * await pay.initializeSDK(user, callbacks); // call once after login
33
+ * pay.send(500, 'NGN'); // call anywhere, anytime
34
+ */
35
+ export function useFountainPay() {
36
+ const instance = useContext(FountainPayContext);
37
+ if (!instance) {
38
+ throw new Error('[FountainPay] useFountainPay() must be called inside <FountainPayProvider>.\n' + 'Make sure you have wrapped your app root with <FountainPayProvider apiKey="...">.');
39
+ }
40
+ return instance;
41
+ }
42
+
43
+ // ── Provider ──────────────────────────────────────────────────────────────────
44
+
11
45
  export function FountainPayProvider({
46
+ apiKey,
47
+ options,
12
48
  children
13
49
  }) {
14
- return /*#__PURE__*/_jsxs(_Fragment, {
50
+ // Boot the HTTP client as soon as the provider mounts —
51
+ // this means generateAccountNumber works even before initializeSDK
52
+ const clientBooted = useRef(false);
53
+ if (!clientBooted.current) {
54
+ initClient(apiKey, {
55
+ baseUrl: options?.baseUrl,
56
+ environment: options?.environment
57
+ });
58
+ clientBooted.current = true;
59
+ console.log('[FountainPay] Provider mounted. HTTP client ready.');
60
+ }
61
+
62
+ // Build the instance once per provider lifetime.
63
+ // All components that call useFountainPay() share this exact object.
64
+ const instance = useMemo(() => {
65
+ console.log('[FountainPay] Creating shared FPInstance for apiKey:', apiKey.slice(0, 8) + '...');
66
+ return {
67
+ /**
68
+ * Call once after the user logs in.
69
+ * Starts BLE advertising, proximity broadcast, and the payment listener.
70
+ */
71
+ async initializeSDK(user, callbacks) {
72
+ console.log('[FountainPay] initializeSDK() called for user:', user.accountName);
73
+ try {
74
+ await FPEngine.initialize(apiKey, user, options ?? {}, callbacks ?? {});
75
+ console.log('[FountainPay] initializeSDK() complete. SDK is ready.');
76
+ } catch (err) {
77
+ console.error('[FountainPay] initializeSDK() FAILED:', err);
78
+ throw err;
79
+ }
80
+ },
81
+ /** Open the Send Money bottom sheet. */
82
+ send(amount, currency) {
83
+ console.log('[FountainPay] send() called:', amount, currency);
84
+ FPEngine.showSend(amount, currency);
85
+ },
86
+ /** Open the Receive Money bottom sheet. */
87
+ receive(amount, currency = 'NGN') {
88
+ console.log('[FountainPay] receive() called:', amount, currency);
89
+ FPEngine.showReceive(amount, currency);
90
+ },
91
+ /** Generate a virtual account number (no UI shown). */
92
+ async generateAccountNumber(request) {
93
+ console.log('[FountainPay] generateAccountNumber() called:', request.accountName);
94
+ return FPEngine.generateAccount(request);
95
+ },
96
+ /**
97
+ * Activate the incoming Bluetooth payment request listener.
98
+ * When a nearby device sends a payment request, the Accept/Decline
99
+ * modal will appear automatically.
100
+ */
101
+ listen() {
102
+ console.log('[FountainPay] listen() called — activating BT payment listener.');
103
+ FPEngine.startListening();
104
+ },
105
+ /** Stop all background services. Call on logout. */
106
+ async destroy() {
107
+ console.log('[FountainPay] destroy() called — stopping all services.');
108
+ await FPEngine.destroy();
109
+ console.log('[FountainPay] All services stopped.');
110
+ },
111
+ get isReady() {
112
+ return FPEngine.isReady();
113
+ },
114
+ get currentUser() {
115
+ return FPEngine.getUser();
116
+ }
117
+ };
118
+ // Re-create instance only if the apiKey changes (which should never happen at runtime)
119
+ }, [apiKey]);
120
+ return /*#__PURE__*/_jsxs(FountainPayContext.Provider, {
121
+ value: instance,
15
122
  children: [children, /*#__PURE__*/_jsx(FPShell, {})]
16
123
  });
17
124
  }
@@ -1 +1 @@
1
- {"version":3,"names":["React","FPShell","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","FountainPayProvider","children"],"sourceRoot":"../../src","sources":["FountainPayProvider.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA,OAAOA,KAAK,MAA0B,OAAO;AAC7C,SAASC,OAAO,QAAQ,wBAAqB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,QAAA,IAAAC,SAAA,EAAAC,IAAA,IAAAC,KAAA;AAM9C,OAAO,SAASC,mBAAmBA,CAAC;EAAEC;AAAgB,CAAC,EAAE;EACvD,oBACEF,KAAA,CAAAF,SAAA;IAAAI,QAAA,GACGA,QAAQ,eAETN,IAAA,CAACF,OAAO,IAAE,CAAC;EAAA,CACX,CAAC;AAEP","ignoreList":[]}
1
+ {"version":3,"names":["React","createContext","useContext","useMemo","useRef","FPShell","FPEngine","initClient","jsx","_jsx","jsxs","_jsxs","FountainPayContext","useFountainPay","instance","Error","FountainPayProvider","apiKey","options","children","clientBooted","current","baseUrl","environment","console","log","slice","initializeSDK","user","callbacks","accountName","initialize","err","error","send","amount","currency","showSend","receive","showReceive","generateAccountNumber","request","generateAccount","listen","startListening","destroy","isReady","currentUser","getUser","Provider","value"],"sourceRoot":"../../src","sources":["FountainPayProvider.tsx"],"mappings":"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","ignoreList":[]}
@@ -65,8 +65,6 @@ export function FPShell() {
65
65
  unsubReceive();
66
66
  };
67
67
  }, []);
68
- const user = FPEngine.getUser();
69
- const callbacks = FPEngine.getCallbacks();
70
68
  return /*#__PURE__*/_jsxs(_Fragment, {
71
69
  children: [/*#__PURE__*/_jsx(FPPaymentRequestModal, {}), /*#__PURE__*/_jsxs(Modal, {
72
70
  visible: sheet.mode !== null,
@@ -103,22 +101,22 @@ export function FPShell() {
103
101
  children: "Done"
104
102
  })
105
103
  })]
106
- }), sheet.mode === 'send' && user && /*#__PURE__*/_jsx(SendScreen, {
104
+ }), sheet.mode === 'send' && /*#__PURE__*/_jsx(SendScreen, {
107
105
  amount: sheet.amount ?? 0,
108
106
  currency: sheet.currency ?? 'NGN',
109
107
  onClose: close,
110
108
  onPaymentSent: tx => {
111
- callbacks.onPaymentSent?.(tx);
109
+ FPEngine.getCallbacks().onPaymentSent?.(tx);
112
110
  close();
113
111
  },
114
- onError: callbacks.onError
115
- }), sheet.mode === 'receive' && user && /*#__PURE__*/_jsx(ReceiveScreen, {
112
+ onError: FPEngine.getCallbacks().onError
113
+ }), sheet.mode === 'receive' && /*#__PURE__*/_jsx(ReceiveScreen, {
116
114
  amount: sheet.amount,
117
115
  currency: sheet.currency,
118
- user: user,
116
+ user: FPEngine.getUser() ?? undefined,
119
117
  onClose: close,
120
- onPaymentReceived: callbacks.onPaymentReceived,
121
- onError: callbacks.onError
118
+ onPaymentReceived: FPEngine.getCallbacks().onPaymentReceived,
119
+ onError: FPEngine.getCallbacks().onError
122
120
  })]
123
121
  })
124
122
  })]
@@ -1 +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":[]}
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","children","visible","transparent","animationType","statusBarTranslucent","onRequestClose","style","st","scrim","activeOpacity","onPress","transform","translateY","flex","handle","header","headerTitle","closeBtn","closeText","onClose","onPaymentSent","tx","getCallbacks","onError","user","getUser","undefined","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":[]}
@@ -32,10 +32,10 @@ export function ReceiveScreen({
32
32
  }) {
33
33
  const [channel, setChannel] = useState(null);
34
34
  const myWallet = {
35
- accountName: user.accountName,
36
- accountNumber: user.accountNumber,
37
- bankName: user.bankName,
38
- bankCode: user.bankCode
35
+ accountName: user?.accountName ?? '',
36
+ accountNumber: user?.accountNumber ?? '',
37
+ bankName: user?.bankName ?? '',
38
+ bankCode: user?.bankCode ?? ''
39
39
  };
40
40
  if (channel === 'nqr') return /*#__PURE__*/_jsx(NQRSubScreen, {
41
41
  mode: "receive",
@@ -70,15 +70,15 @@ export function ReceiveScreen({
70
70
  style: styles.accountCard,
71
71
  children: [/*#__PURE__*/_jsx(Row, {
72
72
  label: "Account Name",
73
- value: user.accountName
73
+ value: user?.accountName ?? ''
74
74
  }), /*#__PURE__*/_jsx(Row, {
75
75
  label: "Account Number",
76
- value: user.accountNumber,
76
+ value: user?.accountNumber ?? '',
77
77
  large: true,
78
78
  copyable: true
79
79
  }), /*#__PURE__*/_jsx(Row, {
80
80
  label: "Bank",
81
- value: user.bankName
81
+ value: user?.bankName ?? ''
82
82
  }), amount && /*#__PURE__*/_jsx(Row, {
83
83
  label: "Expected Amount",
84
84
  value: `${currency} ${amount.toLocaleString('en-NG', {
@@ -1 +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":[]}
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":[]}
@@ -1,82 +1,6 @@
1
1
  "use strict";
2
2
 
3
- // ─────────────────────────────────────────────────────────────
4
- // useFountainPay — The ONLY hook the host app ever uses.
5
- //
6
- // Usage:
7
- // const pay = useFountainPay('your-api-key');
8
- // await pay.initializeSDK(userInfo, callbacks);
9
- // pay.send(500, 'NGN');
10
- // pay.receive(200, 'NGN');
11
- // const acct = await pay.generateAccountNumber({ accountName: 'John' });
12
- // pay.listen();
13
- // pay.destroy();
14
- // ─────────────────────────────────────────────────────────────
15
- import { useMemo } from 'react';
16
- import { FPEngine } from "./engine/FPEngine.js";
17
- import { initClient } from "./core/api/client.js";
18
- export function useFountainPay(apiKey, options) {
19
- // Initialize HTTP client immediately so API calls can be made
20
- // even before initializeSDK (e.g. generateAccountNumber for onboarding)
21
- useMemo(() => {
22
- initClient(apiKey, {
23
- baseUrl: options?.baseUrl,
24
- environment: options?.environment
25
- });
26
- }, [apiKey]);
27
- const instance = useMemo(() => ({
28
- /**
29
- * Call this once after the user logs in.
30
- * Starts proximity broadcasting, BLE peripheral, and BT listener.
31
- */
32
- async initializeSDK(user, callbacks) {
33
- await FPEngine.initialize(apiKey, user, options ?? {}, callbacks ?? {});
34
- },
35
- /**
36
- * Open the Send Money sheet.
37
- * @param amount Major denomination (e.g. 500 for NGN 500)
38
- * @param currency e.g. 'NGN', 'USD'
39
- */
40
- send(amount, currency) {
41
- FPEngine.showSend(amount, currency);
42
- },
43
- /**
44
- * Open the Receive Money sheet.
45
- * @param amount Expected amount (optional)
46
- * @param currency e.g. 'NGN'
47
- */
48
- receive(amount, currency = 'NGN') {
49
- FPEngine.showReceive(amount, currency);
50
- },
51
- /**
52
- * Generate a virtual account number.
53
- * No UI is shown — returns the account directly.
54
- */
55
- async generateAccountNumber(request) {
56
- return FPEngine.generateAccount(request);
57
- },
58
- /**
59
- * Start listening for incoming Bluetooth payment requests.
60
- * When one arrives, the SDK auto-shows the Accept/Decline modal.
61
- * The result fires onPaymentReceived / onPaymentDeclined callbacks
62
- * that were passed into initializeSDK.
63
- */
64
- listen() {
65
- FPEngine.startListening();
66
- },
67
- /**
68
- * Stop all background services. Call on logout.
69
- */
70
- destroy() {
71
- FPEngine.destroy();
72
- },
73
- get isReady() {
74
- return FPEngine.isReady();
75
- },
76
- get currentUser() {
77
- return FPEngine.getUser();
78
- }
79
- }), [apiKey]);
80
- return instance;
81
- }
3
+ // useFountainPay re-exported from FountainPayProvider.
4
+ // The hook lives in FountainPayProvider.tsx now.
5
+ export { useFountainPay } from "./FountainPayProvider.js";
82
6
  //# sourceMappingURL=useFountainPay.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useMemo","FPEngine","initClient","useFountainPay","apiKey","options","baseUrl","environment","instance","initializeSDK","user","callbacks","initialize","send","amount","currency","showSend","receive","showReceive","generateAccountNumber","request","generateAccount","listen","startListening","destroy","isReady","currentUser","getUser"],"sourceRoot":"../../src","sources":["useFountainPay.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,OAAO,QAAQ,OAAO;AAC/B,SAASC,QAAQ,QAAQ,sBAAmB;AAC5C,SAASC,UAAU,QAAQ,sBAAmB;AAW9C,OAAO,SAASC,cAAcA,CAACC,MAAc,EAAEC,OAAsB,EAAc;EACjF;EACA;EACAL,OAAO,CAAC,MAAM;IACZE,UAAU,CAACE,MAAM,EAAE;MAAEE,OAAO,EAAED,OAAO,EAAEC,OAAO;MAAEC,WAAW,EAAEF,OAAO,EAAEE;IAAY,CAAC,CAAC;EACtF,CAAC,EAAE,CAACH,MAAM,CAAC,CAAC;EAEZ,MAAMI,QAAQ,GAAGR,OAAO,CAAa,OAAO;IAC1C;AACJ;AACA;AACA;IACI,MAAMS,aAAaA,CAACC,IAAgB,EAAEC,SAAuB,EAAiB;MAC5E,MAAMV,QAAQ,CAACW,UAAU,CAACR,MAAM,EAAEM,IAAI,EAAEL,OAAO,IAAI,CAAC,CAAC,EAAEM,SAAS,IAAI,CAAC,CAAC,CAAC;IACzE,CAAC;IAED;AACJ;AACA;AACA;AACA;IACIE,IAAIA,CAACC,MAAc,EAAEC,QAAoB,EAAQ;MAC/Cd,QAAQ,CAACe,QAAQ,CAACF,MAAM,EAAEC,QAAQ,CAAC;IACrC,CAAC;IAED;AACJ;AACA;AACA;AACA;IACIE,OAAOA,CAACH,MAAe,EAAEC,QAAoB,GAAG,KAAK,EAAQ;MAC3Dd,QAAQ,CAACiB,WAAW,CAACJ,MAAM,EAAEC,QAAQ,CAAC;IACxC,CAAC;IAED;AACJ;AACA;AACA;IACI,MAAMI,qBAAqBA,CAACC,OAAiC,EAA6B;MACxF,OAAOnB,QAAQ,CAACoB,eAAe,CAACD,OAAO,CAAC;IAC1C,CAAC;IAED;AACJ;AACA;AACA;AACA;AACA;IACIE,MAAMA,CAAA,EAAS;MACbrB,QAAQ,CAACsB,cAAc,CAAC,CAAC;IAC3B,CAAC;IAED;AACJ;AACA;IACIC,OAAOA,CAAA,EAAS;MACdvB,QAAQ,CAACuB,OAAO,CAAC,CAAC;IACpB,CAAC;IAED,IAAIC,OAAOA,CAAA,EAAY;MACrB,OAAOxB,QAAQ,CAACwB,OAAO,CAAC,CAAC;IAC3B,CAAC;IAED,IAAIC,WAAWA,CAAA,EAAsB;MACnC,OAAOzB,QAAQ,CAAC0B,OAAO,CAAC,CAAC;IAC3B;EACF,CAAC,CAAC,EAAE,CAACvB,MAAM,CAAC,CAAC;EAEb,OAAOI,QAAQ;AACjB","ignoreList":[]}
1
+ {"version":3,"names":["useFountainPay"],"sourceRoot":"../../src","sources":["useFountainPay.ts"],"mappings":";;AAAA;AACA;AACA,SAASA,cAAc,QAAQ,0BAAuB","ignoreList":[]}
@@ -1,7 +1,20 @@
1
1
  import { type ReactNode } from 'react';
2
- interface Props {
2
+ import type { FPInstance, FPSDKOptions } from './core/types';
3
+ /**
4
+ * Returns the shared FountainPay instance created by the nearest
5
+ * <FountainPayProvider>. No API key needed here — it was given to the provider.
6
+ *
7
+ * Call from any component:
8
+ * const pay = useFountainPay();
9
+ * await pay.initializeSDK(user, callbacks); // call once after login
10
+ * pay.send(500, 'NGN'); // call anywhere, anytime
11
+ */
12
+ export declare function useFountainPay(): FPInstance;
13
+ interface ProviderProps {
14
+ apiKey: string;
15
+ options?: FPSDKOptions;
3
16
  children: ReactNode;
4
17
  }
5
- export declare function FountainPayProvider({ children }: Props): import("react/jsx-runtime").JSX.Element;
18
+ export declare function FountainPayProvider({ apiKey, options, children }: ProviderProps): import("react/jsx-runtime").JSX.Element;
6
19
  export {};
7
20
  //# sourceMappingURL=FountainPayProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FountainPayProvider.d.ts","sourceRoot":"","sources":["../../../src/FountainPayProvider.tsx"],"names":[],"mappings":"AAKA,OAAc,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAG9C,UAAU,KAAK;IACb,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,wBAAgB,mBAAmB,CAAC,EAAE,QAAQ,EAAE,EAAE,KAAK,2CAQtD"}
1
+ {"version":3,"file":"FountainPayProvider.d.ts","sourceRoot":"","sources":["../../../src/FountainPayProvider.tsx"],"names":[],"mappings":"AAYA,OAAc,EACZ,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAIf,OAAO,KAAK,EACV,UAAU,EAEV,YAAY,EAKb,MAAM,cAAc,CAAC;AAQtB;;;;;;;;GAQG;AACH,wBAAgB,cAAc,IAAI,UAAU,CAS3C;AAID,UAAU,aAAa;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,wBAAgB,mBAAmB,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,aAAa,2CAoF/E"}
@@ -10,7 +10,7 @@ export interface FPUserInfo {
10
10
  bankCode: string;
11
11
  phone?: string;
12
12
  email?: string;
13
- userId?: string;
13
+ userId: string;
14
14
  }
15
15
  export interface FPSDKOptions {
16
16
  baseUrl?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/core/types/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/core/types/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"FPShell.d.ts","sourceRoot":"","sources":["../../../../../src/ui/modals/FPShell.tsx"],"names":[],"mappings":"AA0BA,wBAAgB,OAAO,4CAsEtB"}
1
+ {"version":3,"file":"FPShell.d.ts","sourceRoot":"","sources":["../../../../../src/ui/modals/FPShell.tsx"],"names":[],"mappings":"AA0BA,wBAAgB,OAAO,4CAqEtB"}
@@ -2,7 +2,7 @@ import type { FPCurrency, FPCallbacks, FPUserInfo } from '../../core/types';
2
2
  interface Props extends FPCallbacks {
3
3
  amount?: number;
4
4
  currency?: FPCurrency;
5
- user: FPUserInfo;
5
+ user?: FPUserInfo;
6
6
  onClose: () => void;
7
7
  }
8
8
  export declare function ReceiveScreen({ amount, currency, user, onClose, onPaymentReceived, onError }: Props): import("react/jsx-runtime").JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"ReceiveScreen.d.ts","sourceRoot":"","sources":["../../../../../src/ui/screens/ReceiveScreen.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAU5E,UAAU,KAAM,SAAQ,WAAW;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,UAAU,CAAC;IACtB,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,wBAAgB,aAAa,CAAC,EAAE,MAAM,EAAE,QAAgB,EAAE,IAAI,EAAE,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,EAAE,KAAK,2CAqD3G"}
1
+ {"version":3,"file":"ReceiveScreen.d.ts","sourceRoot":"","sources":["../../../../../src/ui/screens/ReceiveScreen.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAU5E,UAAU,KAAM,SAAQ,WAAW;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,UAAU,CAAC;IACtB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,wBAAgB,aAAa,CAAC,EAAE,MAAM,EAAE,QAAgB,EAAE,IAAI,EAAE,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,EAAE,KAAK,2CAqD3G"}
@@ -1,3 +1,2 @@
1
- import type { FPInstance, FPSDKOptions } from './core/types';
2
- export declare function useFountainPay(apiKey: string, options?: FPSDKOptions): FPInstance;
1
+ export { useFountainPay } from './FountainPayProvider';
3
2
  //# sourceMappingURL=useFountainPay.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useFountainPay.d.ts","sourceRoot":"","sources":["../../../src/useFountainPay.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EACV,UAAU,EAEV,YAAY,EAKb,MAAM,cAAc,CAAC;AAEtB,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,UAAU,CAqEjF"}
1
+ {"version":3,"file":"useFountainPay.d.ts","sourceRoot":"","sources":["../../../src/useFountainPay.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-fpay",
3
- "version": "0.1.1",
3
+ "version": "0.2.4",
4
4
  "description": "Fountain Pay react-native sdk library",
5
5
  "main": "./lib/module/index.js",
6
6
  "module": "./lib/module/index.js",
@@ -1,21 +1,147 @@
1
- // ─────────────────────────────────────────────
1
+ // ─────────────────────────────────────────────────────────────────────────────
2
2
  // FountainPayProvider
3
- // The ONLY thing the host app mounts.
4
- // Wraps children and mounts the invisible shell.
5
- // ─────────────────────────────────────────────
6
- import React, { type ReactNode } from 'react';
3
+ //
4
+ // Mount once at the root of your app and pass your API key here.
5
+ // Every component can then call useFountainPay() (no arguments) and get
6
+ // the SAME instance no re-initialization, no prop drilling.
7
+ //
8
+ // Usage:
9
+ // <FountainPayProvider apiKey="fp_live_...">
10
+ // <YourApp />
11
+ // </FountainPayProvider>
12
+ // ─────────────────────────────────────────────────────────────────────────────
13
+ import React, {
14
+ type ReactNode, createContext, useContext, useMemo, useRef,
15
+ } from 'react';
7
16
  import { FPShell } from './ui/modals/FPShell';
17
+ import { FPEngine } from './engine/FPEngine';
18
+ import { initClient } from './core/api/client';
19
+ import type {
20
+ FPInstance,
21
+ FPUserInfo,
22
+ FPSDKOptions,
23
+ FPCallbacks,
24
+ FPCurrency,
25
+ FPGenerateAccountRequest,
26
+ FPVirtualAccount,
27
+ } from './core/types';
8
28
 
9
- interface Props {
29
+ // ── Context ───────────────────────────────────────────────────────────────────
30
+
31
+ const FountainPayContext = createContext<FPInstance | null>(null);
32
+
33
+ // ── Hook — the only thing components import ───────────────────────────────────
34
+
35
+ /**
36
+ * Returns the shared FountainPay instance created by the nearest
37
+ * <FountainPayProvider>. No API key needed here — it was given to the provider.
38
+ *
39
+ * Call from any component:
40
+ * const pay = useFountainPay();
41
+ * await pay.initializeSDK(user, callbacks); // call once after login
42
+ * pay.send(500, 'NGN'); // call anywhere, anytime
43
+ */
44
+ export function useFountainPay(): FPInstance {
45
+ const instance = useContext(FountainPayContext);
46
+ if (!instance) {
47
+ throw new Error(
48
+ '[FountainPay] useFountainPay() must be called inside <FountainPayProvider>.\n' +
49
+ 'Make sure you have wrapped your app root with <FountainPayProvider apiKey="...">.'
50
+ );
51
+ }
52
+ return instance;
53
+ }
54
+
55
+ // ── Provider ──────────────────────────────────────────────────────────────────
56
+
57
+ interface ProviderProps {
58
+ apiKey: string;
59
+ options?: FPSDKOptions;
10
60
  children: ReactNode;
11
61
  }
12
62
 
13
- export function FountainPayProvider({ children }: Props) {
63
+ export function FountainPayProvider({ apiKey, options, children }: ProviderProps) {
64
+ // Boot the HTTP client as soon as the provider mounts —
65
+ // this means generateAccountNumber works even before initializeSDK
66
+ const clientBooted = useRef(false);
67
+ if (!clientBooted.current) {
68
+ initClient(apiKey, { baseUrl: options?.baseUrl, environment: options?.environment });
69
+ clientBooted.current = true;
70
+ console.log('[FountainPay] Provider mounted. HTTP client ready.');
71
+ }
72
+
73
+ // Build the instance once per provider lifetime.
74
+ // All components that call useFountainPay() share this exact object.
75
+ const instance = useMemo<FPInstance>(() => {
76
+ console.log('[FountainPay] Creating shared FPInstance for apiKey:', apiKey.slice(0, 8) + '...');
77
+
78
+ return {
79
+ /**
80
+ * Call once after the user logs in.
81
+ * Starts BLE advertising, proximity broadcast, and the payment listener.
82
+ */
83
+ async initializeSDK(user: FPUserInfo, callbacks?: FPCallbacks): Promise<void> {
84
+ console.log('[FountainPay] initializeSDK() called for user:', user.accountName);
85
+ try {
86
+ await FPEngine.initialize(apiKey, user, options ?? {}, callbacks ?? {});
87
+ console.log('[FountainPay] initializeSDK() complete. SDK is ready.');
88
+ } catch (err) {
89
+ console.error('[FountainPay] initializeSDK() FAILED:', err);
90
+ throw err;
91
+ }
92
+ },
93
+
94
+ /** Open the Send Money bottom sheet. */
95
+ send(amount: number, currency: FPCurrency): void {
96
+ console.log('[FountainPay] send() called:', amount, currency);
97
+ FPEngine.showSend(amount, currency);
98
+ },
99
+
100
+ /** Open the Receive Money bottom sheet. */
101
+ receive(amount?: number, currency: FPCurrency = 'NGN'): void {
102
+ console.log('[FountainPay] receive() called:', amount, currency);
103
+ FPEngine.showReceive(amount, currency);
104
+ },
105
+
106
+ /** Generate a virtual account number (no UI shown). */
107
+ async generateAccountNumber(request: FPGenerateAccountRequest): Promise<FPVirtualAccount> {
108
+ console.log('[FountainPay] generateAccountNumber() called:', request.accountName);
109
+ return FPEngine.generateAccount(request);
110
+ },
111
+
112
+ /**
113
+ * Activate the incoming Bluetooth payment request listener.
114
+ * When a nearby device sends a payment request, the Accept/Decline
115
+ * modal will appear automatically.
116
+ */
117
+ listen(): void {
118
+ console.log('[FountainPay] listen() called — activating BT payment listener.');
119
+ FPEngine.startListening();
120
+ },
121
+
122
+ /** Stop all background services. Call on logout. */
123
+ async destroy(): Promise<void> {
124
+ console.log('[FountainPay] destroy() called — stopping all services.');
125
+ await FPEngine.destroy();
126
+ console.log('[FountainPay] All services stopped.');
127
+ },
128
+
129
+ get isReady(): boolean {
130
+ return FPEngine.isReady();
131
+ },
132
+
133
+ get currentUser(): FPUserInfo | null {
134
+ return FPEngine.getUser();
135
+ },
136
+ };
137
+ // Re-create instance only if the apiKey changes (which should never happen at runtime)
138
+ }, [apiKey]);
139
+
14
140
  return (
15
- <>
141
+ <FountainPayContext.Provider value={instance}>
16
142
  {children}
17
- {/* FPShell is invisible until pay.send() or pay.receive() is called */}
143
+ {/* FPShell is invisible until pay.send() or pay.receive() fires */}
18
144
  <FPShell />
19
- </>
145
+ </FountainPayContext.Provider>
20
146
  );
21
147
  }
@@ -14,7 +14,7 @@ export interface FPUserInfo {
14
14
  bankCode: string;
15
15
  phone?: string;
16
16
  email?: string;
17
- userId?: string;
17
+ userId: string;
18
18
  }
19
19
 
20
20
  export interface FPSDKOptions {
@@ -45,9 +45,6 @@ export function FPShell() {
45
45
  return () => { unsubSend(); unsubReceive(); };
46
46
  }, []);
47
47
 
48
- const user = FPEngine.getUser();
49
- const callbacks = FPEngine.getCallbacks();
50
-
51
48
  return (
52
49
  <>
53
50
  {/* Always-on BT payment request modal */}
@@ -69,24 +66,26 @@ export function FPShell() {
69
66
  </TouchableOpacity>
70
67
  </View>
71
68
 
72
- {/* Content */}
73
- {sheet.mode === 'send' && user && (
69
+ {/* Read user + callbacks fresh at render time — not at mount time.
70
+ This ensures they're populated even if initializeSDK ran after
71
+ the shell mounted (which is always the case). */}
72
+ {sheet.mode === 'send' && (
74
73
  <SendScreen
75
74
  amount={sheet.amount ?? 0}
76
75
  currency={sheet.currency ?? 'NGN'}
77
76
  onClose={close}
78
- onPaymentSent={(tx) => { callbacks.onPaymentSent?.(tx); close(); }}
79
- onError={callbacks.onError}
77
+ onPaymentSent={(tx) => { FPEngine.getCallbacks().onPaymentSent?.(tx); close(); }}
78
+ onError={FPEngine.getCallbacks().onError}
80
79
  />
81
80
  )}
82
- {sheet.mode === 'receive' && user && (
81
+ {sheet.mode === 'receive' && (
83
82
  <ReceiveScreen
84
83
  amount={sheet.amount}
85
84
  currency={sheet.currency}
86
- user={user}
85
+ user={FPEngine.getUser() ?? undefined}
87
86
  onClose={close}
88
- onPaymentReceived={callbacks.onPaymentReceived}
89
- onError={callbacks.onError}
87
+ onPaymentReceived={FPEngine.getCallbacks().onPaymentReceived}
88
+ onError={FPEngine.getCallbacks().onError}
90
89
  />
91
90
  )}
92
91
  </SafeAreaView>
@@ -16,7 +16,7 @@ const CHANNELS: { id: Channel; emoji: string; title: string; desc: string }[] =
16
16
  interface Props extends FPCallbacks {
17
17
  amount?: number;
18
18
  currency?: FPCurrency;
19
- user: FPUserInfo;
19
+ user?: FPUserInfo;
20
20
  onClose: () => void;
21
21
  }
22
22
 
@@ -24,10 +24,10 @@ export function ReceiveScreen({ amount, currency = 'NGN', user, onClose, onPayme
24
24
  const [channel, setChannel] = useState<Channel | null>(null);
25
25
 
26
26
  const myWallet = {
27
- accountName: user.accountName,
28
- accountNumber: user.accountNumber,
29
- bankName: user.bankName,
30
- bankCode: user.bankCode,
27
+ accountName: user?.accountName ?? '',
28
+ accountNumber: user?.accountNumber ?? '',
29
+ bankName: user?.bankName ?? '',
30
+ bankCode: user?.bankCode ?? '',
31
31
  };
32
32
 
33
33
  if (channel === 'nqr') return <NQRSubScreen mode="receive" amount={amount} currency={currency} onBack={() => setChannel(null)} onDone={onClose} onError={onError} />;
@@ -41,9 +41,9 @@ export function ReceiveScreen({ amount, currency = 'NGN', user, onClose, onPayme
41
41
  </TouchableOpacity>
42
42
  <Text style={styles.sectionTitle}>Your Account Details</Text>
43
43
  <View style={styles.accountCard}>
44
- <Row label="Account Name" value={user.accountName} />
45
- <Row label="Account Number" value={user.accountNumber} large copyable />
46
- <Row label="Bank" value={user.bankName} />
44
+ <Row label="Account Name" value={user?.accountName ?? ''} />
45
+ <Row label="Account Number" value={user?.accountNumber ?? ''} large copyable />
46
+ <Row label="Bank" value={user?.bankName ?? ''} />
47
47
  {amount && <Row label="Expected Amount" value={`${currency} ${amount.toLocaleString('en-NG', { minimumFractionDigits: 2 })}`} highlight />}
48
48
  </View>
49
49
  <Text style={styles.hint}>Share these details with whoever is paying you</Text>
@@ -1,95 +1,3 @@
1
- // ─────────────────────────────────────────────────────────────
2
- // useFountainPay — The ONLY hook the host app ever uses.
3
- //
4
- // Usage:
5
- // const pay = useFountainPay('your-api-key');
6
- // await pay.initializeSDK(userInfo, callbacks);
7
- // pay.send(500, 'NGN');
8
- // pay.receive(200, 'NGN');
9
- // const acct = await pay.generateAccountNumber({ accountName: 'John' });
10
- // pay.listen();
11
- // pay.destroy();
12
- // ─────────────────────────────────────────────────────────────
13
- import { useMemo } from 'react';
14
- import { FPEngine } from './engine/FPEngine';
15
- import { initClient } from './core/api/client';
16
- import type {
17
- FPInstance,
18
- FPUserInfo,
19
- FPSDKOptions,
20
- FPCallbacks,
21
- FPCurrency,
22
- FPGenerateAccountRequest,
23
- FPVirtualAccount,
24
- } from './core/types';
25
-
26
- export function useFountainPay(apiKey: string, options?: FPSDKOptions): FPInstance {
27
- // Initialize HTTP client immediately so API calls can be made
28
- // even before initializeSDK (e.g. generateAccountNumber for onboarding)
29
- useMemo(() => {
30
- initClient(apiKey, { baseUrl: options?.baseUrl, environment: options?.environment });
31
- }, [apiKey]);
32
-
33
- const instance = useMemo<FPInstance>(() => ({
34
- /**
35
- * Call this once after the user logs in.
36
- * Starts proximity broadcasting, BLE peripheral, and BT listener.
37
- */
38
- async initializeSDK(user: FPUserInfo, callbacks?: FPCallbacks): Promise<void> {
39
- await FPEngine.initialize(apiKey, user, options ?? {}, callbacks ?? {});
40
- },
41
-
42
- /**
43
- * Open the Send Money sheet.
44
- * @param amount Major denomination (e.g. 500 for NGN 500)
45
- * @param currency e.g. 'NGN', 'USD'
46
- */
47
- send(amount: number, currency: FPCurrency): void {
48
- FPEngine.showSend(amount, currency);
49
- },
50
-
51
- /**
52
- * Open the Receive Money sheet.
53
- * @param amount Expected amount (optional)
54
- * @param currency e.g. 'NGN'
55
- */
56
- receive(amount?: number, currency: FPCurrency = 'NGN'): void {
57
- FPEngine.showReceive(amount, currency);
58
- },
59
-
60
- /**
61
- * Generate a virtual account number.
62
- * No UI is shown — returns the account directly.
63
- */
64
- async generateAccountNumber(request: FPGenerateAccountRequest): Promise<FPVirtualAccount> {
65
- return FPEngine.generateAccount(request);
66
- },
67
-
68
- /**
69
- * Start listening for incoming Bluetooth payment requests.
70
- * When one arrives, the SDK auto-shows the Accept/Decline modal.
71
- * The result fires onPaymentReceived / onPaymentDeclined callbacks
72
- * that were passed into initializeSDK.
73
- */
74
- listen(): void {
75
- FPEngine.startListening();
76
- },
77
-
78
- /**
79
- * Stop all background services. Call on logout.
80
- */
81
- destroy(): void {
82
- FPEngine.destroy();
83
- },
84
-
85
- get isReady(): boolean {
86
- return FPEngine.isReady();
87
- },
88
-
89
- get currentUser(): FPUserInfo | null {
90
- return FPEngine.getUser();
91
- },
92
- }), [apiKey]);
93
-
94
- return instance;
95
- }
1
+ // useFountainPay re-exported from FountainPayProvider.
2
+ // The hook lives in FountainPayProvider.tsx now.
3
+ export { useFountainPay } from './FountainPayProvider';