Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
primogenial
/
plugins
/
woocommerce
/
packages
/
woocommerce-blocks
/
assets
/
js
/
blocks
/
cart-checkout-shared
/
payment-methods
:
payment-method-error-boundary.js
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
/** * External dependencies */ import { __ } from '@wordpress/i18n'; import { Component } from 'react'; import PropTypes from 'prop-types'; import { CURRENT_USER_IS_ADMIN } from '@woocommerce/settings'; import { StoreNoticesContainer } from '@woocommerce/base-context'; import { noticeContexts } from '@woocommerce/base-context/hooks'; class PaymentMethodErrorBoundary extends Component { state = { errorMessage: '', hasError: false }; static getDerivedStateFromError( error ) { return { errorMessage: error.message, hasError: true, }; } render() { const { hasError, errorMessage } = this.state; const { isEditor } = this.props; if ( hasError ) { let errorText = __( 'We are experiencing difficulties with this payment method. Please contact us for assistance.', 'woocommerce' ); if ( isEditor || CURRENT_USER_IS_ADMIN ) { if ( errorMessage ) { errorText = errorMessage; } else { errorText = __( "There was an error with this payment method. Please verify it's configured correctly.", 'woocommerce' ); } } const notices = [ { id: '0', content: errorText, isDismissible: false, status: 'error', }, ]; return ( <StoreNoticesContainer additionalNotices={ notices } context={ noticeContexts.PAYMENTS } /> ); } return this.props.children; } } PaymentMethodErrorBoundary.propTypes = { isEditor: PropTypes.bool, }; PaymentMethodErrorBoundary.defaultProps = { isEditor: false, }; export default PaymentMethodErrorBoundary;