UNPKG

1.24 kBJavaScriptView Raw
1'use strict';
2
3import { NativeModules, NativeEventEmitter } from 'react-native';
4
5const razorpayEvents = new NativeEventEmitter(NativeModules.RazorpayEventEmitter);
6
7const removeSubscriptions = () => {
8 razorpayEvents.removeAllListeners('Razorpay::PAYMENT_SUCCESS');
9 razorpayEvents.removeAllListeners('Razorpay::PAYMENT_ERROR');
10 razorpayEvents.removeAllListeners('Razorpay::EXTERNAL_WALLET_SELECTED');
11};
12
13class RazorpayCheckout {
14 static open(options, successCallback, errorCallback) {
15 return new Promise(function(resolve, reject) {
16 razorpayEvents.addListener('Razorpay::PAYMENT_SUCCESS', (data) => {
17 let resolveFn = successCallback || resolve;
18 resolveFn(data);
19 removeSubscriptions();
20 });
21 razorpayEvents.addListener('Razorpay::PAYMENT_ERROR', (data) => {
22 let rejectFn = errorCallback || reject;
23 rejectFn(data);
24 removeSubscriptions();
25 });
26 NativeModules.RNRazorpayCheckout.open(options);
27 });
28 }
29 static onExternalWalletSelection(externalWalletCallback) {
30 razorpayEvents.addListener('Razorpay::EXTERNAL_WALLET_SELECTED', (data) => {
31 externalWalletCallback(data);
32 removeSubscriptions();
33 });
34 }
35}
36
37export default RazorpayCheckout;