import type { IPrimerPaymentMethodResource as Resource } from '../../models/PrimerPaymentMethodResource'; import type { IPrimerAsset as Asset } from '../../models/PrimerPaymentMethodResource'; import { NativeModules } from 'react-native'; const { RNTPrimerHeadlessUniversalCheckoutAssetsManager } = NativeModules; class PrimerHeadlessUniversalCheckoutAssetsManager { /////////////////////////////////////////// // Init /////////////////////////////////////////// constructor() {} /////////////////////////////////////////// // Native API /////////////////////////////////////////// async getCardNetworkImageURL(cardNetwork: string): Promise { return new Promise(async (resolve, reject) => { try { const data = await RNTPrimerHeadlessUniversalCheckoutAssetsManager.getCardNetworkImage(cardNetwork); resolve(data.cardNetworkImageURL); } catch (err) { console.error(err); reject(err); } }); } /** * @deprecated Use getPaymentMethodResource instead */ async getPaymentMethodAsset(paymentMethodType: string): Promise { return new Promise(async (resolve, reject) => { try { const data = await RNTPrimerHeadlessUniversalCheckoutAssetsManager.getPaymentMethodAsset(paymentMethodType); const paymentMethodAsset: Asset = data.paymentMethodAsset; resolve(paymentMethodAsset); } catch (err) { console.error(err); reject(err); } }); } /** * @deprecated Use getPaymentMethodResources instead */ async getPaymentMethodAssets(): Promise { return new Promise(async (resolve, reject) => { try { const data = await RNTPrimerHeadlessUniversalCheckoutAssetsManager.getPaymentMethodAssets(); const paymentMethodAssets: Asset[] = data.paymentMethodAssets; resolve(paymentMethodAssets); } catch (err) { console.error(err); reject(err); } }); } async getPaymentMethodResources(): Promise { return new Promise(async (resolve, reject) => { try { const data = await RNTPrimerHeadlessUniversalCheckoutAssetsManager.getPaymentMethodResources(); const paymentMethodResources: Resource[] = data.paymentMethodResources; resolve(paymentMethodResources); } catch (err) { console.error(err); reject(err); } }); } async getPaymentMethodResource(paymentMethodType: string): Promise { return new Promise(async (resolve, reject) => { try { const data = await RNTPrimerHeadlessUniversalCheckoutAssetsManager.getPaymentMethodResource(paymentMethodType); const paymentMethodResource: Resource = data.paymentMethodResource; resolve(paymentMethodResource); } catch (err) { console.error(err); reject(err); } }); } } export default PrimerHeadlessUniversalCheckoutAssetsManager;