1- import { uploadFormCloseHandler , documentKeydownHandler } from './image-upload .js' ;
1+ import { showError , uploadSuccessful , uploadError } from './show-status-popup .js' ;
22import { unblockSubmitButton } from './image-upload.js' ;
3- import { isEscapeKey } from './util.js' ;
43
5- const ERROR_TIMEOUT_MS = 5000 ;
64const BASE_URL = 'https://31.javascript.htmlacademy.pro/kekstagram' ;
75const Route = {
86 GET_DATA : '/data' ,
97 SEND_DATA : '/' ,
108} ;
119
12- const dataErrorTemplateNode = document . querySelector ( '#data-error' ) . content . querySelector ( '.data-error' ) ;
13- const successTemplateNode = document . querySelector ( '#success' ) . content . querySelector ( '.success' ) ;
14- const errorTemplateNode = document . querySelector ( '#error' ) . content . querySelector ( '.error' ) ;
15- const errorMessage = errorTemplateNode . cloneNode ( true ) ;
16- const successMessage = successTemplateNode . cloneNode ( true ) ;
17-
18- const showError = ( ) => {
19- const errorMessageNode = dataErrorTemplateNode . cloneNode ( true ) ;
20- document . body . appendChild ( errorMessageNode ) ;
21- setTimeout ( ( ) => {
22- errorMessageNode . remove ( ) ;
23- } , ERROR_TIMEOUT_MS ) ;
24- } ;
25-
26-
27- const onSuccessMessageKeydown = ( evt ) => {
28- if ( isEscapeKey ( evt ) ) {
29- evt . preventDefault ( ) ;
30- successMessageCloseHandler ( ) ;
31- successMessage . removeEventListener ( 'click' , successMessageCloseHandler ) ;
32- }
33- } ;
34-
35- function successMessageCloseHandler ( ) {
36- successMessage . remove ( ) ;
37- document . removeEventListener ( 'keydown' , onSuccessMessageKeydown ) ;
38- }
39-
40- const uploadSuccessful = ( ) => {
41- document . body . appendChild ( successMessage ) ;
42- document . addEventListener ( 'keydown' , onSuccessMessageKeydown ) ;
43-
44- successMessage . addEventListener ( 'click' , ( evt ) => {
45- if ( ! evt . target . closest ( 'div' ) || evt . target . closest ( 'button' ) ) {
46- successMessageCloseHandler ( ) ;
47- }
48- } ) ;
49-
50- uploadFormCloseHandler ( ) ;
51- } ;
52-
53- const errorMessageCloseHandler = ( ) => {
54- errorMessage . remove ( ) ;
55- document . removeEventListener ( 'keydown' , errorMessageCloseHandler ) ;
56- document . addEventListener ( 'keydown' , documentKeydownHandler ) ;
57- } ;
58-
59- const errorMessageKeydown = ( evt ) => {
60- if ( isEscapeKey ( evt ) ) {
61- evt . preventDefault ( ) ;
62- errorMessageCloseHandler ( ) ;
63- errorMessage . removeEventListener ( 'click' , errorMessageCloseHandler ) ;
64- }
65- } ;
66-
67- const uploadError = ( ) => {
68- document . body . appendChild ( errorMessage ) ;
69- document . removeEventListener ( 'keydown' , documentKeydownHandler ) ;
70- document . addEventListener ( 'keydown' , errorMessageKeydown ) ;
71-
72- errorMessage . addEventListener ( 'click' , ( evt ) => {
73- if ( ! evt . target . closest ( 'div' ) || evt . target . closest ( 'button' ) ) {
74- errorMessageCloseHandler ( ) ;
75- }
76- } ) ;
77- } ;
78-
7910const loadData = ( ) =>
8011 fetch ( `${ BASE_URL } ${ Route . GET_DATA } ` )
8112 . then ( ( response ) => {
@@ -84,11 +15,9 @@ const loadData = () =>
8415 }
8516 return response . json ( ) ;
8617 } )
87- . catch ( ( ) => {
88- showError ( ) ;
89- } ) ;
18+ . catch ( showError ) ;
9019
91- const uploadData = ( body ) => {
20+ const uploadData = async ( body ) => {
9221 fetch (
9322 `${ BASE_URL } ${ Route . SEND_DATA } ` ,
9423 {
@@ -104,4 +33,4 @@ const uploadData = (body) => {
10433 . finally ( unblockSubmitButton ) ;
10534} ;
10635
107- export { loadData , uploadData , showError } ;
36+ export { loadData , uploadData } ;
0 commit comments