From 3eafeba84f25f076a5231c46b24f1f321074fc33 Mon Sep 17 00:00:00 2001 From: ShevArtV Date: Mon, 7 Jul 2025 14:54:09 +0300 Subject: [PATCH] =?UTF-8?q?=D0=92=D1=8B=D0=BD=D0=B5=D1=81=20=D0=B8=D0=BC?= =?UTF-8?q?=D0=B5=D0=BD=D0=B0=20=D0=BA=D0=BB=D0=B0=D1=81=D1=81=D0=BE=D0=B2?= =?UTF-8?q?,=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D1=8F=D0=B5=D0=BC?= =?UTF-8?q?=D1=8B=D1=85=20html-=D1=8D=D0=BB=D0=B5=D0=BC=D0=B5=D0=BD=D1=82?= =?UTF-8?q?=D0=B0=D0=BC=20=D0=B2=20=D0=BF=D0=BE=D0=BB=D1=8F=20=D0=BA=D0=BB?= =?UTF-8?q?=D0=B0=D1=81=D1=81=D0=B0=20MsOrder=20=D0=94=D0=BE=D0=B1=D0=B0?= =?UTF-8?q?=D0=B2=D0=B8=D0=BB=20=D0=BF=D1=80=D0=BE=D0=B2=D0=B5=D1=80=D0=BA?= =?UTF-8?q?=D1=83=20=D1=81=D1=83=D1=89=D0=B5=D1=81=D1=82=D0=B2=D0=BE=D0=B2?= =?UTF-8?q?=D0=B0=D0=BD=D0=B8=D1=8F=20=D0=B2=D0=B8=D0=B4=D0=B8=D0=BC=D0=BE?= =?UTF-8?q?=D0=B3=D0=BE=20=D0=BF=D0=B5=D1=80=D0=B5=D0=BA=D0=BB=D1=8E=D1=87?= =?UTF-8?q?=D0=B0=D1=82=D0=B5=D0=BB=D1=8F=20=D1=81=D0=BF=D0=BE=D1=81=D0=BE?= =?UTF-8?q?=D0=B1=D0=B0=20=D0=BE=D0=BF=D0=BB=D0=B0=D1=82=D1=8B,=20=D1=87?= =?UTF-8?q?=D1=82=D0=BE=D0=B1=D1=8B=20=D0=BD=D0=B5=20=D0=B2=D0=BE=D0=B7?= =?UTF-8?q?=D0=BD=D0=B8=D0=BA=D0=B0=D0=BB=D0=BE=20=D0=BE=D1=88=D0=B8=D0=B1?= =?UTF-8?q?=D0=BA=D0=B8=20=D0=BF=D1=80=D0=B8=20=D0=B5=D0=B3=D0=BE=20=D0=BE?= =?UTF-8?q?=D1=82=D1=81=D1=83=D1=82=D1=81=D1=82=D0=B2=D0=B8=D0=B8=20=D0=BD?= =?UTF-8?q?=D0=B0=20=D1=81=D1=82=D1=80=D0=B0=D0=BD=D0=B8=D1=86=D0=B5.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../js/web/vanilajs/modules/msorder.class.js | 40 +++++++++++-------- 1 file changed, 23 insertions(+), 17 deletions(-) diff --git a/assets/components/minishop2/js/web/vanilajs/modules/msorder.class.js b/assets/components/minishop2/js/web/vanilajs/modules/msorder.class.js index 51b765d7f..dc8718d93 100644 --- a/assets/components/minishop2/js/web/vanilajs/modules/msorder.class.js +++ b/assets/components/minishop2/js/web/vanilajs/modules/msorder.class.js @@ -1,4 +1,6 @@ export default class MsOrder { + static hiddenClassName = 'ms-hidden' + constructor (minishop) { this.minishop = minishop @@ -16,6 +18,8 @@ export default class MsOrder { this.paymentInput = 'input[name="payment"]' this.paymentInputUniquePrefix = '#payment_' this.deliveryInputUniquePrefix = '#delivery_' + this.errorClassName = 'error' + this.requiredClassName = 'required' this.orderCost = document.querySelector('#ms2_order_cost') this.cartCost = document.querySelector('#ms2_order_cart_cost') @@ -79,7 +83,7 @@ export default class MsOrder { const checked = paymentInputs.filter(el => el.checked && (el.offsetWidth > 0 || el.offsetHeight > 0)) const visible = paymentInputs.filter(el => (el.offsetWidth > 0 || el.offsetHeight > 0)) - if (!checked.length) { + if (!checked.length && visible[0]) { visible[0].checked = true } } @@ -112,16 +116,16 @@ export default class MsOrder { } field.value = response.data[key] || '' - field.classList.remove('error') - field.closest(this.inputParent).classList.remove('error') + field.classList.remove(this.errorClassName) + field.closest(this.inputParent).classList.remove(this.errorClassName) } this.callbacks.add.response.error = () => { const field = this.order.querySelector(`[name="${key}"]`) if (['checkbox', 'radio'].includes(field.type)) { - field.closest(this.inputParent).classList.add('error') + field.closest(this.inputParent).classList.add(this.errorClassName) } else { - field.classList.add('error') + field.classList.add(this.errorClassName) } } @@ -195,8 +199,8 @@ export default class MsOrder { if (this.order.elements) { Array.from(this.order.elements).forEach(el => { - el.classList.remove('error') - el.closest(this.inputParent)?.classList.remove('error') + el.classList.remove(this.errorClassName) + el.closest(this.inputParent)?.classList.remove(this.errorClassName) }) } @@ -206,9 +210,9 @@ export default class MsOrder { const field = this.order.querySelector(`[name="${key}"]`) if (['checkbox', 'radio'].includes(field.type)) { - field.closest(this.inputParent).classList.add('error') + field.closest(this.inputParent).classList.add(this.errorClassName) } else { - field.classList.add('error') + field.classList.add(this.errorClassName) } } } @@ -223,22 +227,22 @@ export default class MsOrder { if (this.order.elements.length) { Array.from(this.order.elements).forEach(el => { - el.classList.remove('required') - el.closest(this.inputParent)?.classList.remove('required') + el.classList.remove(this.requiredClassName) + el.closest(this.inputParent)?.classList.remove(this.requiredClassName) }) } for (const name of requires) { - this.order.elements[name]?.classList.add('required') - this.order.elements[name]?.closest(this.inputParent)?.classList.add('required') + this.order.elements[name]?.classList.add(this.requiredClassName) + this.order.elements[name]?.closest(this.inputParent)?.classList.add(this.requiredClassName) } } this.callbacks.getrequired.response.error = () => { if (this.order.elements.length) { Array.from(this.order.elements).forEach(el => { - el.classList.remove('required') - el.closest(this.inputParent)?.classList.remove('required') + el.classList.remove(this.requiredClassName) + el.closest(this.inputParent)?.classList.remove(this.requiredClassName) }) } } @@ -250,11 +254,13 @@ export default class MsOrder { } static hide (node) { - node.classList.add('ms-hidden') + if (!node) return + node.classList.add(MsOrder.hiddenClassName) node.checked = false } static show (node) { - node.classList.remove('ms-hidden') + if (!node) return + node.classList.remove(MsOrder.hiddenClassName) } }