Skip to content

Commit 40f75e7

Browse files
authored
Merge pull request #15 from Vitali3207/master
2 parents c46e1d2 + a8bb106 commit 40f75e7

8 files changed

Lines changed: 36 additions & 45 deletions

File tree

js/big-picture.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
import { isEscapeKey } from './util';
22

3+
const COMMENTS_STEP = 5;
4+
35
const usersPhotoList = document.querySelector('.pictures');
46
const bigPicture = document.querySelector('.big-picture');
57
const bigPictureImage = bigPicture.querySelector('.big-picture__img img');
@@ -13,7 +15,6 @@ const buttonLoader = document.querySelector('.comments-loader');
1315
const buttonClose = document.querySelector('.big-picture__cancel');
1416
socialComments.innerHTML = '';
1517

16-
const COMMENTS_STEP = 5;
1718
let commentCount = 0;
1819
let currentComments = [];
1920

js/form/image-form.js

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { initScale, resetScale } from './image-scale';
33
import { initValidation, validateForm } from './validation';
44
import { initEffect, resetEffect } from './slider-effect';
55
import { sendData } from '../load-data';
6-
import { generateErrorMessage, showSuccessMessage, showErrorMessage, hasErrorMessage } from '../messages';
6+
import { generateErrorMessage, showSuccessMessage, showErrorMessage, hasErrorMessage, closeMessage } from '../messages';
77

88
const FILE_TYPES = ['.jpg', '.jpeg', '.png', '.gif'];
99

@@ -12,14 +12,21 @@ const formOverlay = uploadForm.querySelector('.img-upload__overlay');
1212
const buttonCloseUpload = uploadForm.querySelector('.img-upload__cancel');
1313
const hashtagsInput = uploadForm.querySelector('.text__hashtags');
1414
const descriptionInput = uploadForm.querySelector('.text__description');
15-
const fileChooser = document.querySelector('.img-upload__wrapper input[type=file]');
15+
const fileChooser = document.querySelector('.img-upload__input');
1616
const preview = document.querySelector('.img-upload__preview img');
1717
const uploadFormEffects = uploadForm.querySelectorAll('.effects__preview');
1818

1919
const onEscKeyDown = (evt) => {
20-
if (isEscapeKey(evt) && (document.activeElement !== hashtagsInput || document.activeElement !== descriptionInput) && !hasErrorMessage()) {
21-
closeUploadModal();
20+
if (isEscapeKey(evt) && (document.activeElement === hashtagsInput || document.activeElement === descriptionInput)) {
21+
return;
2222
}
23+
24+
if(hasErrorMessage()) {
25+
closeMessage();
26+
return;
27+
}
28+
29+
closeUploadModal();
2330
};
2431

2532
const onUploadCancelClick = () => {
@@ -28,7 +35,7 @@ const onUploadCancelClick = () => {
2835

2936
function closeUploadModal () {
3037
formOverlay.classList.add('hidden');
31-
document.querySelector('body').classList.remove('.modal-open');
38+
document.querySelector('body').classList.remove('modal-open');
3239
document.removeEventListener('keydown', onEscKeyDown);
3340
buttonCloseUpload.removeEventListener('click', onUploadCancelClick);
3441

@@ -39,7 +46,7 @@ function closeUploadModal () {
3946

4047
const openUploadModal = () => {
4148
formOverlay.classList.remove('hidden');
42-
document.querySelector('body').classList.add('.modal-open');
49+
document.querySelector('body').classList.add('modal-open');
4350
document.addEventListener('keydown', onEscKeyDown);
4451
buttonCloseUpload.addEventListener('click', onUploadCancelClick);
4552

js/form/image-scale.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
1+
const SCALE_STEP = 0.25;
2+
13
const scaleValue = document.querySelector('.scale__control--value');
24
const imagePrewiev = document.querySelector('.img-upload__preview img');
35
const buttonSmaller = document.querySelector('.scale__control--smaller');
46
const buttonBigger = document.querySelector('.scale__control--bigger');
57

68
let scale = 1;
7-
const SCALE_STEP = 0.25;
89

910
const onButtonSmallerClick = () => {
1011
if(scale > SCALE_STEP) {

js/form/validation.js

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1+
const MAX_QUATITY = 5;
2+
const MAX_QUANTITY_SIMBOL = 140;
3+
14
const uploadForm = document.querySelector('.img-upload__form');
25
const hashtagsInput = uploadForm.querySelector('.text__hashtags');
36
const descriptionInput = uploadForm.querySelector('.text__description');
47

5-
const MAX_QUATITY = 5;
6-
const MAX_QUANTITY_SIMBOL = 140;
7-
88
let errorMessage = '';
99

1010
const pristine = new Pristine(uploadForm, {
@@ -17,20 +17,20 @@ const validateForm = () => pristine.validate();
1717

1818
const checkRules = [
1919
{
20-
check: (inputArray) => inputArray.some((element) => !/^#[a-zа-яё1-9]{1,19}$/i.test(element)),
20+
check: (inputsArray) => inputsArray.some((element) => !/^#[a-zа-яё1-9]{1,19}$/i.test(element)),
2121
error: 'Не допустимые символы!'
2222
},
2323
{
24-
check: (inputArray) => inputArray.length > MAX_QUATITY,
24+
check: (inputsArray) => inputsArray.length > MAX_QUATITY,
2525
error: `Не более ${MAX_QUATITY} хэштегов!`
2626
},
2727
{
28-
check: (inputArray) => inputArray.some((element, num, Array) => Array.includes(element, num + 1)),
28+
check: (inputsArray) => inputsArray.some((element, num, elementsArray) => elementsArray.includes(element, num + 1)),
2929
error: 'Хэштэги не должны повторяться!'
3030
},
3131
];
3232

33-
const validHashtags = (value) => {
33+
const validateHashtags = (value) => {
3434
const inputText = value.toLowerCase().trim();
3535
const inputArray = inputText.split(' ');
3636

@@ -51,11 +51,11 @@ const validHashtags = (value) => {
5151
return checks;
5252
};
5353

54-
const validDescription = (value) => {
55-
const inputCommentArray = value;
56-
inputCommentArray.split(' ');
54+
const validateDescription = (value) => {
55+
const inputCommentsArray = value;
56+
inputCommentsArray.split(' ');
5757

58-
const isInvalid = inputCommentArray.length > MAX_QUANTITY_SIMBOL;
58+
const isInvalid = inputCommentsArray.length > MAX_QUANTITY_SIMBOL;
5959

6060
if (isInvalid){
6161
errorMessage = `Не более ${MAX_QUANTITY_SIMBOL} символов!`;
@@ -65,8 +65,8 @@ const validDescription = (value) => {
6565
};
6666

6767
const initValidation = () => {
68-
pristine.addValidator(hashtagsInput, validHashtags, () => errorMessage);
69-
pristine.addValidator(descriptionInput, validDescription, () => errorMessage);
68+
pristine.addValidator(hashtagsInput, validateHashtags, () => errorMessage);
69+
pristine.addValidator(descriptionInput, validateDescription, () => errorMessage);
7070
};
7171

7272
export { initValidation, validateForm };

js/messages.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,12 @@ const generateErrorMessage = (message) => {
2828
const closeMessage = () => {
2929
if (successMessageContainer) {
3030
successMessageContainer.remove();
31+
return;
3132
}
3233

3334
if(errorMessageContainer) {
3435
errorMessageContainer.remove();
36+
return;
3537
}
3638

3739
document.body.removeEventListener('click', onBodyCancelClick);
@@ -82,4 +84,4 @@ const showErrorMessage = () => {
8284
showPopupMessage(errorNode);
8385
};
8486

85-
export { generateErrorMessage, showSuccessMessage, showErrorMessage, hasErrorMessage };
87+
export { generateErrorMessage, showSuccessMessage, showErrorMessage, hasErrorMessage, closeMessage };

js/render-thumbnails.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
const usersPhotoList = document.querySelector('.pictures');
22
const thumbnails = document.querySelector('#picture').content.querySelector('.picture');
33

4-
const renderThumbnails = (userPhoto) => {
4+
const renderThumbnails = (userPhotos) => {
55
usersPhotoList.querySelectorAll('.picture').forEach((photo) => photo.remove());
66
const photoFragment = document.createDocumentFragment();
77

8-
userPhoto.forEach((photo) => {
8+
userPhotos.forEach((photo) => {
99
const photoElement = thumbnails.cloneNode(true);
1010

1111
photoElement.dataset.pictureId = photo.id;

js/util.js

Lines changed: 1 addition & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -6,26 +6,7 @@ const getRandomInteger = (min, max) => {
66
return Math.floor(result);
77
};
88

9-
const createPreviousRangeGenerator = (min, max) => {
10-
const previousValues = [];
11-
12-
return function () {
13-
let currentValue = getRandomInteger(min, max);
14-
if (previousValues.length >= (max - min + 1)) {
15-
return null;
16-
}
17-
while (previousValues.includes(currentValue)) {
18-
currentValue = getRandomInteger(min, max);
19-
}
20-
previousValues.push(currentValue);
21-
return currentValue;
22-
};
23-
};
24-
25-
const getRandomArrayElement = (elements) => elements[getRandomInteger(0, elements.length - 1)];
26-
279
const isEscapeKey = (evt) => evt.key === 'Escape';
28-
const isEnterKey = (evt) => evt.key === 'Enter';
2910

3011
function debounce (callback, timeoutDelay) {
3112
let timeoutId;
@@ -36,4 +17,4 @@ function debounce (callback, timeoutDelay) {
3617
};
3718
}
3819

39-
export { getRandomInteger, createPreviousRangeGenerator, getRandomArrayElement, isEscapeKey, isEnterKey, debounce };
20+
export { getRandomInteger, isEscapeKey, debounce };

js1-kekstagram-e2e

Lines changed: 0 additions & 1 deletion
This file was deleted.

0 commit comments

Comments
 (0)