@@ -5,6 +5,28 @@ const ERROR_SHOW_TIME = 5000;
55const dataErrorTemplate = document . querySelector ( '#data-error' ) ;
66const body = document . querySelector ( 'body' ) ;
77
8+ let messageDiv = null ;
9+ let messageButton = null ;
10+
11+ const closeMessage = ( ) => {
12+ messageDiv . remove ( ) ;
13+ document . removeEventListener ( 'keydown' , handleKeydown , true ) ;
14+ messageButton . removeEventListener ( 'click' , closeMessage ) ;
15+ messageDiv . removeEventListener ( 'click' , handleOverlayClick ) ;
16+ } ;
17+
18+ function handleKeydown ( evt ) {
19+ evt . stopPropagation ( ) ;
20+ if ( isEscapeKey ( evt ) ) {
21+ closeMessage ( ) ;
22+ }
23+ }
24+
25+ function handleOverlayClick ( evt ) {
26+ if ( evt . target === messageDiv ) {
27+ closeMessage ( ) ;
28+ }
29+ }
830const showDataError = ( ) => {
931 const template = dataErrorTemplate . content . cloneNode ( true ) ;
1032 const errorDiv = template . firstElementChild ;
@@ -16,30 +38,10 @@ const showDataError = () => {
1638
1739const showMessage = ( templateId , buttonClass ) => {
1840 const template = document . querySelector ( templateId ) . content . cloneNode ( true ) ;
19- const messageDiv = template . firstElementChild ;
20- const messageButton = messageDiv . querySelector ( buttonClass ) ;
41+ messageDiv = template . firstElementChild ;
42+ messageButton = messageDiv . querySelector ( buttonClass ) ;
2143 body . append ( template ) ;
2244
23- const closeMessage = ( ) => {
24- messageDiv . remove ( ) ;
25- document . removeEventListener ( 'keydown' , handleKeydown , true ) ;
26- messageButton . removeEventListener ( 'click' , closeMessage ) ;
27- messageDiv . removeEventListener ( 'click' , handleOverlayClick ) ;
28- } ;
29-
30- function handleKeydown ( evt ) {
31- evt . stopPropagation ( ) ;
32- if ( isEscapeKey ( evt ) ) {
33- closeMessage ( ) ;
34- }
35- }
36-
37- function handleOverlayClick ( evt ) {
38- if ( evt . target === messageDiv ) {
39- closeMessage ( ) ;
40- }
41- }
42-
4345 messageButton . addEventListener ( 'click' , closeMessage ) ;
4446 document . addEventListener ( 'keydown' , handleKeydown , true ) ;
4547 messageDiv . addEventListener ( 'click' , handleOverlayClick ) ;
0 commit comments