UNPKG

@exodus/react-native-payments

Version:

[![react-native version](https://img.shields.io/badge/react--native-0.41-0ba7d3.svg?style=flat-square)](http://facebook.github.io/react-native/releases/0.40) [![npm](https://img.shields.io/npm/v/react-native-payments.svg?style=flat-square)](https://www.np

69 lines (68 loc) 2.3 kB
import { NativeModules, Platform } from 'react-native'; const ReactNativePayments = NativeModules.ReactNativePayments; const IS_ANDROID = Platform.OS === 'android'; const noop = () => { }; const isSupported = IS_ANDROID ? false : ReactNativePayments.canMakePayments; function canMakePayments() { return new Promise((resolve, reject) => { resolve(isSupported); }); } function canMakePaymentsUsingNetworks(usingNetworks) { return new Promise(resolve => { if (IS_ANDROID) return resolve(false); ReactNativePayments.canMakePaymentsUsingNetworks(usingNetworks, (err, data) => resolve(data)); }); } function createPaymentRequest(methodData, details, options = Object.create(null)) { return new Promise((resolve, reject) => { if (IS_ANDROID) { return resolve(); } ReactNativePayments.createPaymentRequest(methodData, details, options, err => err ? reject(err) : resolve()); }); } function handleDetailsUpdate(details) { return new Promise((resolve, reject) => { if (IS_ANDROID) return resolve(undefined); ReactNativePayments.handleDetailsUpdate(details, err => err ? reject(err) : resolve()); }); } function show() { return new Promise((resolve, reject) => { if (IS_ANDROID) return reject(new Error('NotSupportedError')); ReactNativePayments.show((err, paymentToken) => { return err ? reject(err) : resolve(true); }); }); } function abort() { return new Promise((resolve, reject) => { if (IS_ANDROID) return resolve(undefined); ReactNativePayments.abort(err => err ? reject(err) : resolve(true)); }); } function complete(paymentStatus) { return new Promise((resolve, reject) => { if (IS_ANDROID) return resolve(undefined); ReactNativePayments.complete(paymentStatus, err => err ? reject(err) : resolve(true)); }); } const openPaymentSetup = (ReactNativePayments && ReactNativePayments.openPaymentSetup) || noop; const NativePayments = { isSupported, canMakePayments, canMakePaymentsUsingNetworks, createPaymentRequest, handleDetailsUpdate, show, abort, complete, openPaymentSetup, }; export default NativePayments;