import { decodeEntities } from '@wordpress/html-entities'
import { __ } from '@wordpress/i18n'
import { isVisible } from './components/visibility'
import { registerPaymentMethod } from '@woocommerce/blocks-registry'
import { getPaymentMethodData } from '@woocommerce/settings'
import { createElement } from '@wordpress/element';

export const settings = getPaymentMethodData('hsbc_gateway');

settings.forEach(item => {
    if ( ! item.is_enabled ) {
        return;
    }

    const label = (item) => {
        let img = '';
        if (item.icon) {
            img = createElement('img', {
                src: item.icon,
                alt: item.title,
                className: 'hsbc_icon'
            });
        }

        return createElement('span', { className: 'hsbc-payment-item' }, item.title, img);
    }

    const content = (item) => {
        const desc = decodeEntities(item.description || '');
        return createElement('span', { className: 'hsbc-payment-description' }, desc);
    };

    const blockGateway = {
        name: item.id,
        label: label(item),
        content: content(item),
        edit: content(item),
        canMakePayment: (data) => {
            return new Promise(function (resolve, reject) {
                let result = isVisible(item, data);
                resolve(result);
            })
        },
        ariaLabel: decodeEntities(item.title),
        supports: {
            features: item.supports,
            showSavedCards: false,
            showSaveOption: false,
        }
    }

    registerPaymentMethod(blockGateway);
});


