/**
 * Copyright since 2007 PrestaShop SA and Contributors
 * PrestaShop is an International Registered Trademark & Property of PrestaShop SA
 *
 * NOTICE OF LICENSE
 *
 * This source file is subject to the Academic Free License 3.0 (AFL-3.0)
 * that is bundled with this package in the file LICENSE.md.
 * It is also available through the world-wide-web at this URL:
 * https://opensource.org/licenses/AFL-3.0
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to license@prestashop.com so we can send you a copy immediately.
 *
 * DISCLAIMER
 *
 * Do not edit or add to this file if you wish to upgrade PrestaShop to newer
 * versions in the future. If you wish to customize PrestaShop for your
 * needs please refer to https://devdocs.prestashop.com/ for more information.
 *
 * @author    PrestaShop SA and Contributors <contact@prestashop.com>
 * @copyright Since 2007 PrestaShop SA and Contributors
 * @license   https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0)
 */
import prestashop from 'prestashop';
import $ from 'jquery';

$(function() {
  prestashop.blockcart = prestashop.blockcart || {};
  prestashop.on('updateCart', function(event) {
      var refreshURL = $('.blockcart').data('refresh-url');
      var requestData = {};
      if (event && event.reason && typeof event.resp !== 'undefined' && !event.resp.hasError) {
          requestData = {
              id_customization: event.reason.idCustomization,
              id_product_attribute: event.reason.idProductAttribute,
              id_product: event.reason.idProduct,
              action: event.reason.linkAction
          }
      }
      if (event && event.resp && event.resp.hasError) {
          prestashop.emit('showErrorNextToAddtoCartButton', {
              errorMessage: event.resp.errors.join('<br/>')
          })
      }
      $.post(refreshURL, requestData).then(function(resp) {
        $('.blockcart').replaceWith($(resp.preview).find('.blockcart'));
      }).fail(function(resp) {
          prestashop.emit('handleError', {
              eventType: 'updateShoppingCart',
              resp: resp
          })
      })
  })
})