From fd55b60b96f07eae5b41dcae80d851fb1a8d46c8 Mon Sep 17 00:00:00 2001 From: tblivet Date: Thu, 31 Aug 2023 18:07:29 +0200 Subject: [PATCH] fix: input change on cart qty below 1 --- src/js/pages/cart.ts | 45 +++++++++++++++++++++++--------------------- 1 file changed, 24 insertions(+), 21 deletions(-) diff --git a/src/js/pages/cart.ts b/src/js/pages/cart.ts index e3d22f848..134d179b6 100644 --- a/src/js/pages/cart.ts +++ b/src/js/pages/cart.ts @@ -6,33 +6,13 @@ import {Collapse} from 'bootstrap'; import {isHTMLElement} from '@helpers/typeguards'; import handleCartAction from '../components/UseHandleCartAction'; +import { qtyInput } from '@constants/selectors-map'; export default () => { const {Theme} = window; const voucherCodes = document.querySelectorAll(Theme.selectors.cart.discountCode); const cartContainer = document.querySelector(Theme.selectors.cart.container); - if (cartContainer) { - cartContainer.addEventListener('click', (event: Event) => { - const eventTarget = event.target as HTMLElement; - - if (eventTarget.classList.contains('js-decrement-button')) { - const targetItem = eventTarget.closest('.cart__item'); - const targetValue = targetItem?.querySelector('.js-cart-line-product-quantity') as HTMLElement | null; - - if (targetValue && targetValue.getAttribute('value') === '1' && targetValue.getAttribute('min') === '1') { - if (targetItem) { - const removeButton = targetItem.querySelector('.remove-from-cart') as HTMLElement | null; - - if (removeButton) { - removeButton.click(); - } - } - } - } - }); - } - voucherCodes.forEach((voucher) => { voucher.addEventListener('click', (event: Event) => { event.stopPropagation(); @@ -56,9 +36,32 @@ export default () => { }); if (cartContainer) { + console.log(cartContainer); cartContainer.addEventListener('click', (event: Event) => { const eventTarget = event.target as HTMLElement; + const targetItem = eventTarget.closest('.cart__item'); + const targetValue = targetItem?.querySelector('.js-cart-line-product-quantity') as HTMLInputElement | null; + const removeButton = targetItem?.querySelector('.remove-from-cart') as HTMLElement | null; + + if (targetValue) { + if (eventTarget.classList.contains('js-increment-button')) { + if (targetValue.dataset.mode === 'confirmation' && Number(targetValue.value) < 1) { + if (removeButton) { + removeButton.click(); + } + } + } + + if (eventTarget.classList.contains('js-decrement-button')) { + if (targetValue.getAttribute('value') === '1' && targetValue.getAttribute('min') === '1') { + if (removeButton) { + removeButton.click(); + } + } + } + } + if (eventTarget.dataset.linkAction === Theme.selectors.cart.deleteLinkAction) { handleCartAction(event); }