From 482bc85f83aa4c987e6e99cfffcae536763f8082 Mon Sep 17 00:00:00 2001 From: tblivet Date: Thu, 10 Aug 2023 18:04:24 +0200 Subject: [PATCH 1/4] fix: delete cart product when click on minus --- src/js/pages/cart.ts | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/src/js/pages/cart.ts b/src/js/pages/cart.ts index 3cd14b238..e3d22f848 100644 --- a/src/js/pages/cart.ts +++ b/src/js/pages/cart.ts @@ -10,6 +10,28 @@ 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); + + 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) => { @@ -33,8 +55,6 @@ export default () => { }); }); - const cartContainer = document.querySelector(Theme.selectors.cart.container); - if (cartContainer) { cartContainer.addEventListener('click', (event: Event) => { const eventTarget = event.target as HTMLElement; From fd55b60b96f07eae5b41dcae80d851fb1a8d46c8 Mon Sep 17 00:00:00 2001 From: tblivet Date: Thu, 31 Aug 2023 18:07:29 +0200 Subject: [PATCH 2/4] 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); } From a4bd5cee1140a853f15e8842f3b963b8d5fbb265 Mon Sep 17 00:00:00 2001 From: tblivet Date: Thu, 31 Aug 2023 18:09:47 +0200 Subject: [PATCH 3/4] refacto: remove console log --- src/js/pages/cart.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/js/pages/cart.ts b/src/js/pages/cart.ts index 134d179b6..9a73a39e9 100644 --- a/src/js/pages/cart.ts +++ b/src/js/pages/cart.ts @@ -36,7 +36,6 @@ export default () => { }); if (cartContainer) { - console.log(cartContainer); cartContainer.addEventListener('click', (event: Event) => { const eventTarget = event.target as HTMLElement; From fd439cc911f36a75bcb711411e305176c6506356 Mon Sep 17 00:00:00 2001 From: tblivet Date: Thu, 31 Aug 2023 18:12:59 +0200 Subject: [PATCH 4/4] chore: lint --- src/js/pages/cart.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/js/pages/cart.ts b/src/js/pages/cart.ts index 9a73a39e9..e00c066fb 100644 --- a/src/js/pages/cart.ts +++ b/src/js/pages/cart.ts @@ -6,7 +6,6 @@ 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; @@ -47,7 +46,7 @@ export default () => { if (eventTarget.classList.contains('js-increment-button')) { if (targetValue.dataset.mode === 'confirmation' && Number(targetValue.value) < 1) { if (removeButton) { - removeButton.click(); + removeButton.click(); } } }