From 51db696eeb2a7075f9a753d942b06623ed1e6b04 Mon Sep 17 00:00:00 2001 From: Anastasiia Kononova Date: Tue, 26 May 2026 16:49:51 +0300 Subject: [PATCH] remove nested fucntions --- js/notifications.js | 46 +++++++++++++++++++++++---------------------- 1 file changed, 24 insertions(+), 22 deletions(-) diff --git a/js/notifications.js b/js/notifications.js index 5db134a..1b54b38 100644 --- a/js/notifications.js +++ b/js/notifications.js @@ -5,6 +5,28 @@ const ERROR_SHOW_TIME = 5000; const dataErrorTemplate = document.querySelector('#data-error'); const body = document.querySelector('body'); +let messageDiv = null; +let messageButton = null; + +const closeMessage = () => { + messageDiv.remove(); + document.removeEventListener('keydown', handleKeydown, true); + messageButton.removeEventListener('click', closeMessage); + messageDiv.removeEventListener('click', handleOverlayClick); +}; + +function handleKeydown(evt) { + evt.stopPropagation(); + if (isEscapeKey(evt)) { + closeMessage(); + } +} + +function handleOverlayClick(evt) { + if (evt.target === messageDiv) { + closeMessage(); + } +} const showDataError = () => { const template = dataErrorTemplate.content.cloneNode(true); const errorDiv = template.firstElementChild; @@ -16,30 +38,10 @@ const showDataError = () => { const showMessage = (templateId, buttonClass) => { const template = document.querySelector(templateId).content.cloneNode(true); - const messageDiv = template.firstElementChild; - const messageButton = messageDiv.querySelector(buttonClass); + messageDiv = template.firstElementChild; + messageButton = messageDiv.querySelector(buttonClass); body.append(template); - const closeMessage = () => { - messageDiv.remove(); - document.removeEventListener('keydown', handleKeydown, true); - messageButton.removeEventListener('click', closeMessage); - messageDiv.removeEventListener('click', handleOverlayClick); - }; - - function handleKeydown(evt) { - evt.stopPropagation(); - if (isEscapeKey(evt)) { - closeMessage(); - } - } - - function handleOverlayClick(evt) { - if (evt.target === messageDiv) { - closeMessage(); - } - } - messageButton.addEventListener('click', closeMessage); document.addEventListener('keydown', handleKeydown, true); messageDiv.addEventListener('click', handleOverlayClick);