JezK
Edit File: sc-checkout-paystack-payment-provider2.js.map
{"file":"sc-checkout-paystack-payment-provider2.js","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6CAkDqC,eAAO,CAAC,UAAE;;;;;;;;;yCAWlB,eAAO,CAAC,UAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":[],"sources":["src/components/controllers/checkout-form/sc-checkout-paystack-payment-provider/sc-checkout-paystack-payment-provider.tsx"],"sourcesContent":["/**\n * External dependencies.\n */\nimport PaystackPop from '@paystack/inline-js';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { Component } from '@stencil/core';\n\n/**\n * Internal dependencies.\n */\nimport { state as checkoutState } from '@store/checkout';\nimport { state as selectedProcessor } from '@store/selected-processor';\nimport { onChange as onChangeFormState } from '@store/form';\nimport { currentFormState } from '@store/form/getters';\nimport { updateFormState } from '@store/form/mutations';\nimport { createErrorNotice } from '@store/notices/mutations';\n\n@Component({\n tag: 'sc-checkout-paystack-payment-provider',\n shadow: true,\n})\nexport class ScCheckoutPaystackPaymentProvider {\n private unlistenToFormState: () => void;\n\n componentWillLoad() {\n // we need to listen to the form state and pay when the form state enters the paying state.\n this.unlistenToFormState = onChangeFormState('formState', () => {\n // are we paying?\n if ('paying' === currentFormState()) {\n this.confirm();\n }\n });\n }\n\n disconnectedCallback() {\n this.unlistenToFormState();\n }\n\n async confirm() {\n // this processor is not selected.\n if (selectedProcessor?.id !== 'paystack') return;\n // Must be a paystack session\n if (!checkoutState?.checkout?.payment_intent?.processor_data.paystack) return;\n // Prevent if already paid.\n if (checkoutState?.checkout?.status === 'paid') return;\n\n try {\n // must have a public key and access code.\n const { public_key, access_code } = checkoutState?.checkout?.payment_intent.processor_data.paystack;\n if (!public_key || !access_code) {\n createErrorNotice({ message: sprintf(__('Payment gateway configuration incomplete. Please ensure Paystack is properly configured for transactions.', 'surecart')) });\n return;\n }\n\n const paystack = new PaystackPop();\n\n await paystack.newTransaction({\n key: public_key,\n accessCode: access_code, // We'll use accessCode which will handle product, price on our server.\n onSuccess: async transaction => {\n if (transaction?.status !== 'success') {\n throw { message: sprintf(__('Paystack transaction could not be finished. Status: %s', 'surecart'), transaction?.status) };\n }\n return updateFormState('PAID');\n },\n onClose: () => updateFormState('REJECT'),\n });\n } catch (err) {\n createErrorNotice(err);\n console.error(err);\n updateFormState('REJECT');\n }\n }\n}\n"],"version":3}