forked from brooksbingham/theme-elegance
92 lines
3.0 KiB
JavaScript
92 lines
3.0 KiB
JavaScript
/**
|
|
* 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';
|
|
import 'jquery-toast-plugin';
|
|
import 'jquery-toast-plugin/dist/jquery.toast.min.css';
|
|
|
|
$(() => {
|
|
prestashop.blockcart = prestashop.blockcart || {};
|
|
const showModal = prestashop.blockcart.showModal
|
|
|| function (modal) {
|
|
const $body = $('body');
|
|
$body.append(modal);
|
|
$('#blockcart-modal').modal();
|
|
console.log('called');
|
|
$body.one('click', '#blockcart-modal', (event) => {
|
|
if (event.target.id === 'blockcart-modal') {
|
|
$.modal.close();
|
|
}
|
|
});
|
|
};
|
|
prestashop.on('updateCart', (event) => {
|
|
const refreshURL = $('.blockcart').data('refresh-url');
|
|
let 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((resp) => {
|
|
$('.blockcart').replaceWith($(resp.preview).find('.blockcart'));
|
|
if (resp.modal) {
|
|
$.toast({
|
|
heading: 'Added to Cart',
|
|
text: 'You can checkout or continue shopping.',
|
|
position: {
|
|
top: '100px',
|
|
right: '20px',
|
|
},
|
|
bgColor: '#ffffff',
|
|
textColor: '#111827',
|
|
loaderBg: '#172554',
|
|
class: 'rounded-none border border-gray-200',
|
|
});
|
|
}
|
|
})
|
|
.fail((resp) => {
|
|
prestashop.emit('handleError', {
|
|
eventType: 'updateShoppingCart',
|
|
resp,
|
|
});
|
|
});
|
|
});
|
|
});
|