From d6ccccdfa77c27b460a3ae4548c3beab75ccfa2e Mon Sep 17 00:00:00 2001 From: Dinesh Salunke Date: Wed, 6 Dec 2023 13:17:49 +0530 Subject: [PATCH] refactor: move the blockcart code from theme to blockcart file --- _dev/js/components/block-cart.js | 85 ++++++++++++++++++++++++-------- _dev/js/theme.js | 42 +--------------- 2 files changed, 65 insertions(+), 62 deletions(-) diff --git a/_dev/js/components/block-cart.js b/_dev/js/components/block-cart.js index 2405374..5772cfd 100644 --- a/_dev/js/components/block-cart.js +++ b/_dev/js/components/block-cart.js @@ -25,26 +25,69 @@ import prestashop from 'prestashop'; 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 getBlockCartModal() { - return $('#blockcart-modal'); +$(function() { + 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() + } + }) } - - 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.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('
') + }) + } + $.post(refreshURL, requestData).then(function(resp) { + // TODO: keeping this over here, for later purposes if need be + var html = $('
').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 + }) + }) + }) +}) diff --git a/_dev/js/theme.js b/_dev/js/theme.js index 8911292..1d14ab4 100644 --- a/_dev/js/theme.js +++ b/_dev/js/theme.js @@ -23,6 +23,7 @@ * @license https://opensource.org/licenses/AFL-3.0 Academic Free License 3.0 (AFL-3.0) */ /* eslint-disable */ +// import 'bootstrap/dist/js/bootstrap.min'; import "jquery-offcanvas/dist/jquery.offcanvas.min.css"; import touchspin from "bootstrap-touchspin"; import "jquery-touchswipe"; @@ -163,45 +164,4 @@ $(function () { $(".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('
') - }) - } - $.post(refreshURL, requestData).then(function(resp) { - // TODO: keeping this over here, for later purposes if need be - // var html = $('
').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 - }) - }) - }) });