This commit is contained in:
2026-07-04 19:40:48 +03:00
parent 0cf3f93567
commit 409668ac50
12 changed files with 236 additions and 27 deletions

View File

@@ -7,6 +7,11 @@
var catalogButton = document.querySelector('.site-header__menu-button');
var cookieNote = document.querySelector('[data-cookie-note]');
var cookieButton = document.querySelector('[data-cookie-accept]');
var leadModal = document.querySelector('[data-lead-modal]');
var leadOpenNodes = document.querySelectorAll('[data-lead-open]');
var leadCloseNodes = document.querySelectorAll('[data-lead-close]');
var phoneInputs = document.querySelectorAll('[data-phone-mask]');
var emailInputs = document.querySelectorAll('[data-email-mask]');
function setMenuState(isOpen) {
if (!menu || !toggle) {
@@ -19,6 +24,67 @@
toggle.setAttribute('aria-expanded', isOpen ? 'true' : 'false');
}
function setLeadModalState(isOpen, source) {
if (!leadModal) {
return;
}
leadModal.hidden = !isOpen;
body.classList.toggle('lead-modal-is-open', isOpen);
if (!isOpen) {
return;
}
var pageInput = leadModal.querySelector('input[name="lead_page"]');
var sourceInput = leadModal.querySelector('input[name="lead_source"]');
var firstInput = leadModal.querySelector('input[name="lead_name"]');
if (pageInput) {
pageInput.value = document.title + ' | ' + window.location.pathname;
}
if (sourceInput) {
sourceInput.value = source || 'Попап заявки';
}
if (firstInput) {
window.setTimeout(function () {
firstInput.focus();
}, 80);
}
}
function applyPhoneMask(input) {
var digits = input.value.replace(/\D/g, '');
if (digits.charAt(0) === '8') {
digits = '7' + digits.slice(1);
}
if (digits.charAt(0) === '7') {
digits = digits.slice(1);
}
digits = digits.slice(0, 10);
var value = '+7';
if (digits.length > 0) {
value += ' (' + digits.slice(0, 3);
}
if (digits.length >= 3) {
value += ') ' + digits.slice(3, 6);
}
if (digits.length >= 6) {
value += '-' + digits.slice(6, 8);
}
if (digits.length >= 8) {
value += '-' + digits.slice(8, 10);
}
input.value = value;
}
if (menu && toggle) {
toggle.addEventListener('click', function () {
setMenuState(!menu.classList.contains('is-open'));
@@ -46,6 +112,44 @@
});
}
leadOpenNodes.forEach(function (node) {
node.addEventListener('click', function (event) {
event.preventDefault();
setMenuState(false);
setLeadModalState(true, node.getAttribute('data-lead-source') || node.textContent.trim());
});
});
leadCloseNodes.forEach(function (node) {
node.addEventListener('click', function () {
setLeadModalState(false);
});
});
document.addEventListener('keydown', function (event) {
if (event.key === 'Escape') {
setLeadModalState(false);
}
});
phoneInputs.forEach(function (input) {
input.addEventListener('focus', function () {
if (!input.value) {
input.value = '+7';
}
});
input.addEventListener('input', function () {
applyPhoneMask(input);
});
});
emailInputs.forEach(function (input) {
input.addEventListener('input', function () {
input.value = input.value.replace(/\s/g, '').toLowerCase();
});
});
if (cookieNote && cookieButton && window.localStorage) {
if (localStorage.getItem('sevTortCookieAccepted') !== 'yes') {
cookieNote.hidden = false;