UNPKG

@koin_payments/react-native-payments-plugin

Version:

Plugin React Native oficial da Koin para integraΓ§Γ£o com o SDK de Payments, permitindo adicionar funcionalidades de pagamento de forma simples e segura

57 lines (48 loc) β€’ 1.71 kB
import type { TurboModule } from 'react-native'; import { TurboModuleRegistry } from 'react-native'; export interface Spec extends TurboModule { initializeSDK(apiKey: string, config: Object): Promise<string>; initiatePayment(jsonPaymentRequest: string): Promise<string>; } // Debug function to check TurboModule availability const checkTurboModule = () => { console.log( 'πŸ” Checking TurboModuleRegistry for PaymentsReactNativePlugin...' ); try { const turboModule = TurboModuleRegistry.getEnforcing<Spec>( 'PaymentsReactNativePlugin' ); console.log('βœ… TurboModule found and registered successfully'); return turboModule; } catch (error) { console.error('❌ TurboModule not found:', error); return null; } }; // Create safe wrapper with fallback for TurboModule const createSafeTurboModule = (): Spec => { const turboModule = checkTurboModule(); if (!turboModule) { console.error('🚨 TurboModule not found! Creating fallback...'); // Return fallback implementation that throws meaningful errors return { initializeSDK: () => Promise.reject( new Error( 'TurboModule PaymentsReactNativePlugin not found. Make sure New Architecture is enabled and the module is properly configured.' ) ), initiatePayment: () => Promise.reject( new Error( 'TurboModule PaymentsReactNativePlugin not found. Make sure New Architecture is enabled and the module is properly configured.' ) ), }; } console.log('βœ… TurboModule found and ready'); return turboModule; }; // Use safe TurboModule wrapper export default createSafeTurboModule();