11import { toggleClass , isEscapeKey } from './util.js' ;
22import { updateScale , resetScale , updateEffect , resetSlider } from './update-photo-mode.js' ;
3- import { sendData } from './api.js' ;
3+ import { sendData , showErrorMessage } from './api.js' ;
44
55const HASHTAG_MAX_COUNT = 5 ;
6-
6+ const FILE_TYPES = [ 'gif' , 'jpg' , 'jpeg' , 'png' ] ;
77const DESCRIPTION_MAX_LENGTH = 140 ;
88
99const HashtagLength = {
@@ -14,6 +14,7 @@ const HashtagLength = {
1414const photoUploadForm = document . querySelector ( '.img-upload__form' ) ;
1515const photoUploadInput = photoUploadForm . querySelector ( '.img-upload__input' ) ;
1616const photoUploadOverlay = photoUploadForm . querySelector ( '.img-upload__overlay' ) ;
17+ const preview = document . querySelector ( '.img-upload__preview img' ) ;
1718const hashtagInput = photoUploadForm . querySelector ( '.text__hashtags' ) ;
1819const photoDescriptionField = photoUploadForm . querySelector ( '.text__description' ) ;
1920const cancelPhotoUploadBtn = photoUploadForm . querySelector ( '#upload-cancel' ) ;
@@ -133,11 +134,12 @@ const onCancelPhotoUpload = (evt) => {
133134
134135const onPhotoUploadEscKey = ( evt ) => {
135136 const errorPopup = errorElement . querySelector ( '.popup' ) ;
136- if ( isEscapeKey ( evt ) && document . activeElement !== hashtagInput && document . activeElement !== photoDescriptionField && errorPopup ) {
137+ if ( isEscapeKey ( evt ) && document . activeElement !== hashtagInput && document . activeElement !== photoDescriptionField && ! errorPopup ) {
137138 evt . preventDefault ( ) ;
138139 resetForm ( ) ;
139140 closePhotoUploadForm ( ) ;
140141 }
142+ document . removeEventListener ( 'keydown' , onPhotoUploadEscKey ) ;
141143} ;
142144
143145const onOpenPhotoUploadForm = ( evt ) => {
@@ -147,6 +149,16 @@ const onOpenPhotoUploadForm = (evt) => {
147149} ;
148150
149151function openPhotoUploadForm ( ) {
152+ const file = photoUploadInput . files [ 0 ] ;
153+ const fileName = file . name . toLowerCase ( ) ;
154+ const matches = FILE_TYPES . some ( ( type ) => fileName . endsWith ( type ) ) ;
155+
156+ if ( matches ) {
157+ preview . src = URL . createObjectURL ( file ) ;
158+ } else {
159+ showErrorMessage ( ) ;
160+ closePhotoUploadForm ( ) ;
161+ }
150162 document . addEventListener ( 'keydown' , onPhotoUploadEscKey ) ;
151163 toggleModal ( ) ;
152164 toggleSubmitBtn ( ) ;
@@ -171,7 +183,6 @@ const onFailUploadEscKey = (evt) => {
171183 if ( isEscapeKey ( evt ) ) {
172184 evt . preventDefault ( ) ;
173185 errorSubmitMessage . remove ( ) ;
174- document . removeEventListener ( 'keydown' , onFailUploadEscKey ) ;
175186 }
176187} ;
177188
0 commit comments