@@ -11,6 +11,8 @@ const MIN_SCALE = 25;
1111const MAX_SCALE = 100 ;
1212const DEFAULT_SCALE = 100 ;
1313
14+ const FILE_TYPES = [ 'jpg' , 'jpeg' , 'png' ] ;
15+
1416const EFFECTS = {
1517 none : {
1618 range : { min : 0 , max : 100 } ,
@@ -54,6 +56,7 @@ const scaleControlSmaller = document.querySelector('.scale__control--smaller');
5456const scaleControlBigger = document . querySelector ( '.scale__control--bigger' ) ;
5557const scaleControlValue = document . querySelector ( '.scale__control--value' ) ;
5658const imgPreview = document . querySelector ( '.img-upload__preview img' ) ;
59+ const effectsPreviews = document . querySelectorAll ( '.effects__preview' ) ;
5760let currentScale = DEFAULT_SCALE ;
5861
5962const sliderContainer = document . querySelector ( '.img-upload__effect-level' ) ;
@@ -96,11 +99,23 @@ function onDocumentKeydown(evt) {
9699 }
97100}
98101
99- // Открытие формы при выборе файла
102+ // Обработчик выбора файла
100103fileInput . addEventListener ( 'change' , ( ) => {
101- overlay . classList . remove ( 'hidden' ) ;
102- document . body . classList . add ( 'modal-open' ) ;
103- document . addEventListener ( 'keydown' , onDocumentKeydown ) ;
104+ const file = fileInput . files [ 0 ] ;
105+ const fileName = file . name . toLowerCase ( ) ;
106+ const matches = FILE_TYPES . some ( ( it ) => fileName . endsWith ( it ) ) ;
107+
108+ if ( matches ) {
109+ const url = URL . createObjectURL ( file ) ;
110+ imgPreview . src = url ; // Подставляем фото в главное окно
111+ effectsPreviews . forEach ( ( preview ) => {
112+ preview . style . backgroundImage = `url(${ url } )` ; // Подставляем в маленькие превью эффектов
113+ } ) ;
114+
115+ overlay . classList . remove ( 'hidden' ) ;
116+ document . body . classList . add ( 'modal-open' ) ;
117+ document . addEventListener ( 'keydown' , onDocumentKeydown ) ;
118+ }
104119} ) ;
105120
106121// Обработчик клика по кнопке 'отмена' (крестик)
0 commit comments