1- const EFFECTS = {
1+ const effects = {
22 chrome : { filter : 'grayscale' , min : 0 , max : 1 , step : 0.1 , unit : '' } ,
33 sepia : { filter : 'sepia' , min : 0 , max : 1 , step : 0.1 , unit : '' } ,
44 marvin : { filter : 'invert' , min : 0 , max : 100 , step : 1 , unit : '%' } ,
55 phobos : { filter : 'blur' , min : 0 , max : 3 , step : 0.1 , unit : 'px' } ,
66 heat : { filter : 'brightness' , min : 1 , max : 3 , step : 0.1 , unit : '' }
77} ;
88
9- const form = document . querySelector ( '.img-upload__form' ) ;
9+ const DEFAULT_EFFECT = 'none' ;
1010
11+ const form = document . querySelector ( '.img-upload__form' ) ;
1112const slider = form . querySelector ( '.effect-level__slider' ) ;
1213const sliderContainer = form . querySelector ( '.img-upload__effect-level' ) ;
1314const uploadedImage = form . querySelector ( '.img-upload__preview img' ) ;
1415const effectRadios = form . querySelectorAll ( 'input[name="effect"]' ) ;
1516const inputValue = form . querySelector ( '.effect-level__value' ) ;
17+ const noneRadioBtn = form . querySelector ( 'input[value="none"]' ) ;
1618
1719const initImageEffects = ( ) => {
1820 let selectedFilter = 'none' ;
@@ -32,8 +34,8 @@ const initImageEffects = () => {
3234 if ( selectedFilter === 'none' ) {
3335 return ;
3436 }
35- const value = slider . noUiSlider . get ( ) ;
36- const effect = EFFECTS [ selectedFilter ] ;
37+ const value = parseFloat ( slider . noUiSlider . get ( ) ) ;
38+ const effect = effects [ selectedFilter ] ;
3739 const filterStyle = `${ effect . filter } (${ value } ${ effect . unit } )` ;
3840 uploadedImage . style . filter = filterStyle ;
3941 inputValue . value = value ;
@@ -42,13 +44,13 @@ const initImageEffects = () => {
4244 effectRadios . forEach ( ( radio ) => {
4345 radio . addEventListener ( 'change' , ( ) => {
4446 selectedFilter = radio . value ;
45- if ( selectedFilter === 'none' ) {
47+ if ( selectedFilter === DEFAULT_EFFECT ) {
4648 sliderContainer . classList . add ( 'hidden' ) ;
4749 uploadedImage . style . filter = '' ;
4850 } else {
4951 sliderContainer . classList . remove ( 'hidden' ) ;
5052
51- const effect = EFFECTS [ selectedFilter ] ;
53+ const effect = effects [ selectedFilter ] ;
5254 slider . noUiSlider . updateOptions ( {
5355 range : { min : effect . min , max : effect . max } ,
5456 start : effect . max ,
@@ -60,7 +62,6 @@ const initImageEffects = () => {
6062} ;
6163
6264const resetImageEffects = ( ) => {
63- const noneRadioBtn = form . querySelector ( 'input[value="none"]' ) ;
6465 noneRadioBtn . checked = true ;
6566 sliderContainer . classList . add ( 'hidden' ) ;
6667 uploadedImage . style . filter = '' ;
0 commit comments