billing-agreement.js 1.58 KB
/**
 * Copyright © Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */
define([
    'jquery',
    'Magento_Ui/js/modal/confirm',
    'Magento_Customer/js/customer-data'
], function ($, confirm, customerData) {
    'use strict';

    $.widget('mage.billingAgreement', {
        options: {
            invalidateOnLoad: false,
            cancelButtonSelector: '.block-billing-agreements-view button.cancel',
            cancelMessage: '',
            cancelUrl: ''
        },

        /**
         * Initialize billing agreements events
         * @private
         */
        _create: function () {
            var self = this;

            if (this.options.invalidateOnLoad) {
                this.invalidate();
            }
            $(this.options.cancelButtonSelector).on('click', function () {
                confirm({
                    content: self.options.cancelMessage,
                    actions: {
                        /**
                         * 'Confirm' action handler.
                         */
                        confirm: function () {
                            self.invalidate();
                            window.location.href = self.options.cancelUrl;
                        }
                    }
                });

                return false;
            });
        },

        /**
         * clear paypal billing agreement customer data
         * @returns void
         */
        invalidate: function () {
            customerData.invalidate(['paypal-billing-agreement']);
        }
    });

    return $.mage.billingAgreement;
});