diff --git a/src/js/modal-team.js b/src/js/modal-team.js deleted file mode 100644 index 7265d4a..0000000 --- a/src/js/modal-team.js +++ /dev/null @@ -1,53 +0,0 @@ -const teamLink = document.querySelector('.footer__link'); -const teamBackdrop = document.querySelector('.team__backdrop'); -const teamCloseBtn = document.querySelector('.team__modal-close-btn'); - -function onLinkClick(event) { - event.preventDefault(); - - teamBackdrop.classList.remove('is-hidden'); - document.body.classList.add('modal-open'); - - addAllEventListeners(); -} - -function onEscClick(event) { - event.preventDefault(); - - if (event.code !== 'Escape') { - return; - } - - closingModalStaff(); -} - -function onBackdropClick(event) { - if (event.target.closest('.team__wrapper')) { - return; - } - - closingModalStaff(); -} - -function onCloseBtnClick(event) { - event.preventDefault(); - - closingModalStaff(); -} - -function addAllEventListeners() { - document.addEventListener('keydown', onEscClick); - teamBackdrop.addEventListener('click', onBackdropClick); - teamCloseBtn.addEventListener('click', onCloseBtnClick); -} - -function closingModalStaff() { - document.removeEventListener('keydown', onEscClick); - teamBackdrop.removeEventListener('click', onBackdropClick); - teamCloseBtn.removeEventListener('click', onCloseBtnClick); - - teamBackdrop.classList.add('is-hidden'); - document.body.classList.remove('modal-open'); -} - -teamLink.addEventListener('click', onLinkClick); diff --git a/src/js/modal-windows.js b/src/js/modal-windows.js new file mode 100644 index 0000000..ab09e63 --- /dev/null +++ b/src/js/modal-windows.js @@ -0,0 +1,81 @@ +function setupModal( + linkSelector, + backdropSelector, + closeBtnSelector, + wrapperSelector +) { + const link = document.querySelector(linkSelector); + const backdrop = document.querySelector(backdropSelector); + const closeBtn = document.querySelector(closeBtnSelector); + + function onLinkClick(event) { + event.preventDefault(); + + backdrop.classList.remove('is-hidden'); + document.body.classList.add('modal-open'); + + addAllEventListeners(); + } + + function onEscClick(event) { + event.preventDefault(); + + if (event.code !== 'Escape') { + return; + } + + closingModalStaff(); + } + + function onBackdropClick(event) { + if (event.target.closest(wrapperSelector)) { + return; + } + + closingModalStaff(); + } + + function onCloseBtnClick(event) { + event.preventDefault(); + + closingModalStaff(); + } + + function addAllEventListeners() { + document.addEventListener('keydown', onEscClick); + backdrop.addEventListener('click', onBackdropClick); + closeBtn.addEventListener('click', onCloseBtnClick); + } + + function closingModalStaff() { + document.removeEventListener('keydown', onEscClick); + backdrop.removeEventListener('click', onBackdropClick); + closeBtn.removeEventListener('click', onCloseBtnClick); + + backdrop.classList.add('is-hidden'); + document.body.classList.remove('modal-open'); + } + + link.addEventListener('click', onLinkClick); +} + +setupModal( + '.footer__link', + '.team__backdrop', + '.team__modal-close-btn', + '.team__wrapper' +); + +setupModal( + '.footer__text--privacy', + '.privacy__backdrop', + '.privacy__modal-close-btn', + '.privacy__wrapper' +); + +setupModal( + '.footer__text--terms', + '.terms__backdrop', + '.terms__modal-close-btn', + '.terms__wrapper' +); diff --git a/src/js/privacy-policy.js b/src/js/privacy-policy.js deleted file mode 100644 index a762101..0000000 --- a/src/js/privacy-policy.js +++ /dev/null @@ -1,53 +0,0 @@ -const privacyLink = document.querySelector('.footer__text--privacy'); -const privacyBackdrop = document.querySelector('.privacy__backdrop'); -const privacyCloseBtn = document.querySelector('.privacy__modal-close-btn'); - -function onLinkClick(event) { - event.preventDefault(); - - privacyBackdrop.classList.remove('is-hidden'); - document.body.classList.add('modal-open'); - - addAllEventListeners(); -} - -function onEscClick(event) { - event.preventDefault(); - - if (event.code !== 'Escape') { - return; - } - - closingModalStaff(); -} - -function onBackdropClick(event) { - if (event.target.closest('.privacy__wrapper')) { - return; - } - - closingModalStaff(); -} - -function onCloseBtnClick(event) { - event.preventDefault(); - - closingModalStaff(); -} - -function addAllEventListeners() { - document.addEventListener('keydown', onEscClick); - privacyBackdrop.addEventListener('click', onBackdropClick); - privacyCloseBtn.addEventListener('click', onCloseBtnClick); -} - -function closingModalStaff() { - document.removeEventListener('keydown', onEscClick); - privacyBackdrop.removeEventListener('click', onBackdropClick); - privacyCloseBtn.removeEventListener('click', onCloseBtnClick); - - privacyBackdrop.classList.add('is-hidden'); - document.body.classList.remove('modal-open'); -} - -privacyLink.addEventListener('click', onLinkClick); diff --git a/src/js/terms-of-service.js b/src/js/terms-of-service.js deleted file mode 100644 index 7c40eca..0000000 --- a/src/js/terms-of-service.js +++ /dev/null @@ -1,53 +0,0 @@ -const termsLink = document.querySelector('.footer__text--terms'); -const termsBackdrop = document.querySelector('.terms__backdrop'); -const termsCloseBtn = document.querySelector('.terms__modal-close-btn'); - -function onLinkClick(event) { - event.preventDefault(); - - termsBackdrop.classList.remove('is-hidden'); - document.body.classList.add('modal-open'); - - addAllEventListeners(); -} - -function onEscClick(event) { - event.preventDefault(); - - if (event.code !== 'Escape') { - return; - } - - closingModalStaff(); -} - -function onBackdropClick(event) { - if (event.target.closest('.terms__wrapper')) { - return; - } - - closingModalStaff(); -} - -function onCloseBtnClick(event) { - event.preventDefault(); - - closingModalStaff(); -} - -function addAllEventListeners() { - document.addEventListener('keydown', onEscClick); - termsBackdrop.addEventListener('click', onBackdropClick); - termsCloseBtn.addEventListener('click', onCloseBtnClick); -} - -function closingModalStaff() { - document.removeEventListener('keydown', onEscClick); - termsBackdrop.removeEventListener('click', onBackdropClick); - termsCloseBtn.removeEventListener('click', onCloseBtnClick); - - termsBackdrop.classList.add('is-hidden'); - document.body.classList.remove('modal-open'); -} - -termsLink.addEventListener('click', onLinkClick); diff --git a/src/main.js b/src/main.js index f414f91..13dd757 100644 --- a/src/main.js +++ b/src/main.js @@ -1,8 +1,6 @@ import './js/mobile-menu'; import './js/mobile-icon-open'; import './js/form'; -import './js/modal-team'; +import './js/modal-windows'; import './js/smooth-scroll'; import './js/scroll-top'; -import './js/privacy-policy'; -import './js/terms-of-service';