diff --git a/src/js/constants/selectors-map.ts b/src/js/constants/selectors-map.ts index 1805bcfc4..06dfaba87 100644 --- a/src/js/constants/selectors-map.ts +++ b/src/js/constants/selectors-map.ts @@ -35,12 +35,14 @@ export const listing = { export const cart = { container: '.cart-container', + summary: '.cart-summary', overview: '.cart-overview', discountCode: '.js-discount .js-code', discountName: '[name=discount_name]', displayPromo: '.display-promo', promoCode: '#promo-code', deleteLinkAction: 'delete-from-cart', + removeVoucherAction: 'remove-voucher', productQuantity: '.cart__items .js-quantity-button', productItem: '.cart__item', removeFromCartLink: '.remove-from-cart', diff --git a/src/js/pages/cart.ts b/src/js/pages/cart.ts index e00c066fb..b3217bc7b 100644 --- a/src/js/pages/cart.ts +++ b/src/js/pages/cart.ts @@ -9,30 +9,30 @@ import handleCartAction from '../components/UseHandleCartAction'; export default () => { const {Theme} = window; - const voucherCodes = document.querySelectorAll(Theme.selectors.cart.discountCode); const cartContainer = document.querySelector(Theme.selectors.cart.container); + const cartSummary = document.querySelector(Theme.selectors.cart.summary); - voucherCodes.forEach((voucher) => { - voucher.addEventListener('click', (event: Event) => { - event.stopPropagation(); + if (cartSummary) { + cartSummary.addEventListener('click', (event: Event) => { + const eventTarget = event.target as HTMLElement; + const voucherTarget = eventTarget.closest(Theme.selectors.cart.discountCode); - if (isHTMLElement(event.currentTarget)) { - const code = event.currentTarget; + if (voucherTarget && isHTMLElement(voucherTarget)) { const discountInput = document.querySelector(Theme.selectors.cart.discountName); const promoCode = document.querySelector(Theme.selectors.cart.promoCode); if (promoCode && discountInput) { - const formCollapser = new Collapse(promoCode); + const formCollapser = new Collapse(promoCode, { + toggle: false, + }); - discountInput.value = code.innerText; + discountInput.value = voucherTarget.innerText; // Show promo code field formCollapser.show(); } } - - return false; }); - }); + } if (cartContainer) { cartContainer.addEventListener('click', (event: Event) => { diff --git a/templates/checkout/_partials/cart-voucher.tpl b/templates/checkout/_partials/cart-voucher.tpl index 3d655a952..b405718c8 100644 --- a/templates/checkout/_partials/cart-voucher.tpl +++ b/templates/checkout/_partials/cart-voucher.tpl @@ -12,11 +12,15 @@
    {foreach from=$cart.vouchers.added item=voucher}
  • - {$voucher.name}
    + {$voucher.name} {$voucher.reduction_formatted} {if isset($voucher.code) && $voucher.code !== ''} - +
    + + + +
    {/if}
  • @@ -24,7 +28,7 @@
{/block} {/if} - +
@@ -36,7 +40,7 @@
{block name='cart_voucher_form'} -
+