refactor: move the blockcart code from theme to blockcart file

pagebuilder
Dinesh Salunke 2023-12-06 13:17:49 +05:30
parent e81cdd9d00
commit d6ccccdfa7
2 changed files with 65 additions and 62 deletions

View File

@ -25,26 +25,69 @@
import prestashop from 'prestashop'; import prestashop from 'prestashop';
import $ from 'jquery'; import $ from 'jquery';
prestashop.blockcart = prestashop.blockcart || {}; // TODO: kept here as a reference, to be removed in future once we have our own modal implementaion
// prestashop.blockcart.showModal = (html) => {
// function getBlockCartModal() {
// return $('#blockcart-modal');
// }
//
// let $blockCartModal = getBlockCartModal();
//
// if ($blockCartModal.length) {
// $blockCartModal.remove();
// }
//
// $('body').append(html);
//
// $blockCartModal = getBlockCartModal();
// $blockCartModal.modal('show').on('hidden.bs.modal', (event) => {
// prestashop.emit('updateProduct', {
// reason: event.currentTarget.dataset,
// event,
// });
// });
// };
prestashop.blockcart.showModal = (html) => { $(function() {
function getBlockCartModal() { prestashop.blockcart = prestashop.blockcart || {};
return $('#blockcart-modal'); var showModal = prestashop.blockcart.showModal || function(modal) {
var $body = $('body');
$body.append(modal);
$body.one('click', '#blockcart-modal', function(event) {
if (event.target.id === 'blockcart-modal') {
$(event.target).remove()
}
})
} }
;
let $blockCartModal = getBlockCartModal(); prestashop.on('updateCart', function(event) {
var refreshURL = $('.blockcart').data('refresh-url');
if ($blockCartModal.length) { var requestData = {};
$blockCartModal.remove(); if (event && event.reason && typeof event.resp !== 'undefined' && !event.resp.hasError) {
} requestData = {
id_customization: event.reason.idCustomization,
$('body').append(html); id_product_attribute: event.reason.idProductAttribute,
id_product: event.reason.idProduct,
$blockCartModal = getBlockCartModal(); action: event.reason.linkAction
$blockCartModal.modal('show').on('hidden.bs.modal', (event) => { }
prestashop.emit('updateProduct', { }
reason: event.currentTarget.dataset, if (event && event.resp && event.resp.hasError) {
event, prestashop.emit('showErrorNextToAddtoCartButton', {
}); errorMessage: event.resp.errors.join('<br/>')
}); })
}; }
$.post(refreshURL, requestData).then(function(resp) {
// TODO: keeping this over here, for later purposes if need be
var html = $('<div />').append($.parseHTML(resp.preview));
$('.blockcart').replaceWith($(resp.preview).find('.blockcart'));
if (resp.modal) {
showModal(resp.modal)
}
}).fail(function(resp) {
prestashop.emit('handleError', {
eventType: 'updateShoppingCart',
resp: resp
})
})
})
})

View File

@ -23,6 +23,7 @@
* @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0) * @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0)
*/ */
/* eslint-disable */ /* eslint-disable */
// import 'bootstrap/dist/js/bootstrap.min';
import "jquery-offcanvas/dist/jquery.offcanvas.min.css"; import "jquery-offcanvas/dist/jquery.offcanvas.min.css";
import touchspin from "bootstrap-touchspin"; import touchspin from "bootstrap-touchspin";
import "jquery-touchswipe"; import "jquery-touchswipe";
@ -163,45 +164,4 @@ $(function () {
$(".th-accordion").thaccordion(); $(".th-accordion").thaccordion();
prestashop.blockcart = prestashop.blockcart || {};
var showModal = prestashop.blockcart.showModal || function(modal) {
var $body = $('body');
$body.append(modal);
$body.one('click', '#blockcart-modal', function(event) {
if (event.target.id === 'blockcart-modal') {
$(event.target).remove()
}
})
}
;
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) {
// TODO: keeping this over here, for later purposes if need be
// var html = $('<div />').append($.parseHTML(resp.preview));
// $('.blockcart').replaceWith($(resp.preview).find('.blockcart'));
// if (resp.modal) {
// showModal(resp.modal)
// }
}).fail(function(resp) {
prestashop.emit('handleError', {
eventType: 'updateShoppingCart',
resp: resp
})
})
})
}); });