Skip to content

Commit d6a70a7

Browse files
authored
Merge pull request #18 from Julyova/master
вносит правки после код-ревью
2 parents b7db621 + baa1dd2 commit d6a70a7

10 files changed

Lines changed: 61 additions & 181 deletions

File tree

index.html

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -239,7 +239,6 @@ <h2 class="data-error__title">Не удалось загрузить данны
239239
</template>
240240

241241
<script defer type="module" src="js/main.js"></script>
242-
<script defer type="module" src="js/functions.js"></script>
243242

244243
</body>
245244

js/api.js

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
const BASE_URL = 'https://31.javascript.htmlacademy.pro/kekstagram/';
1+
const BASE_URL = 'https://31.javascript.htmlacademy.pro/kekstagram';
22

33
const getData = () =>
44
new Promise((resolve, reject) => {
@@ -24,11 +24,16 @@ const getData = () =>
2424
const sendData = (formData) =>
2525
new Promise((resolve, reject) => {
2626
const xhr = new XMLHttpRequest();
27-
xhr.open('POST', BASE_URL);
27+
xhr.open('POST', `${BASE_URL}/`);
2828
xhr.addEventListener('load', () => {
29-
if (xhr.status === 200) {
29+
if (xhr.status >= 200 && xhr.status < 300) {
3030
try {
31-
resolve(JSON.parse(xhr.response));
31+
const data = JSON.parse(xhr.response);
32+
if (data.error) {
33+
reject(new Error('Не удалось отправить данные'));
34+
} else {
35+
resolve(data);
36+
}
3237
} catch (e) {
3338
reject(new Error('Не удалось отправить данные'));
3439
}

js/big-picture.js

Lines changed: 13 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,16 @@ const renderComments = () => {
5353
}
5454
};
5555

56-
const onCommentsLoaderClick = () => {
57-
renderComments();
56+
const onDocumentKeydown = (evt) => {
57+
if (evt.key === 'Escape') {
58+
closeBigPicture(); // eslint-disable-line no-use-before-define
59+
}
60+
};
61+
62+
const closeBigPicture = () => {
63+
bigPictureElement.classList.add('hidden');
64+
document.body.classList.remove('modal-open');
65+
document.removeEventListener('keydown', onDocumentKeydown);
5866
};
5967

6068
const openBigPicture = (pictureData) => {
@@ -73,26 +81,13 @@ const openBigPicture = (pictureData) => {
7381
totalCommentCount.textContent = currentComments.length;
7482
commentCountBlock.classList.remove('hidden');
7583

84+
document.addEventListener('keydown', onDocumentKeydown);
7685
renderComments();
7786
};
7887

79-
const closeBigPicture = () => {
80-
bigPictureElement.classList.add('hidden');
81-
document.body.classList.remove('modal-open');
82-
};
83-
8488
const initBigPictureHandlers = () => {
85-
cancelButton.addEventListener('click', () => {
86-
closeBigPicture();
87-
});
88-
89-
commentsLoader.addEventListener('click', onCommentsLoaderClick);
90-
91-
document.addEventListener('keydown', (evt) => {
92-
if (evt.key === 'Escape' && !bigPictureElement.classList.contains('hidden')) {
93-
closeBigPicture();
94-
}
95-
});
89+
cancelButton.addEventListener('click', closeBigPicture);
90+
commentsLoader.addEventListener('click', renderComments);
9691
};
9792

9893
export { openBigPicture, closeBigPicture, initBigPictureHandlers };

js/createArrayMiniatures.js

Lines changed: 0 additions & 32 deletions
This file was deleted.

js/effect.js

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ const imgUploadPreview = document.querySelector('.img-upload__preview img');
55
const effectLevelContainer = document.querySelector('.img-upload__effect-level');
66
const effectsPreviewList = document.querySelectorAll('.effects__preview');
77

8+
const DEFAULT_EFFECT = 'none';
9+
810
const EFFECTS = {
911
none: {
1012
filter: null,
@@ -50,7 +52,7 @@ const EFFECTS = {
5052
}
5153
};
5254

53-
let currentEffect = 'none';
55+
let currentEffect = DEFAULT_EFFECT;
5456

5557
const updateSliderOptions = (effect) => {
5658
effectLevelSlider.noUiSlider.updateOptions({
@@ -66,7 +68,7 @@ const updateSliderOptions = (effect) => {
6668
const applyEffect = (value) => {
6769
const effect = EFFECTS[currentEffect];
6870

69-
if (currentEffect === 'none') {
71+
if (currentEffect === DEFAULT_EFFECT) {
7072
imgUploadPreview.style.filter = '';
7173
effectLevelContainer.classList.add('hidden');
7274
return;
@@ -89,11 +91,10 @@ const onEffectChange = (evt) => {
8991
};
9092

9193
const resetEffect = () => {
92-
currentEffect = 'none';
93-
document.querySelector('#effect-none').checked = true;
94-
imgUploadPreview.style.filter = '';
95-
effectLevelContainer.classList.add('hidden');
96-
updateSliderOptions(EFFECTS['none']);
94+
currentEffect = DEFAULT_EFFECT;
95+
document.querySelector(`#effect-${DEFAULT_EFFECT}`).checked = true;
96+
updateSliderOptions(EFFECTS[DEFAULT_EFFECT]);
97+
applyEffect(EFFECTS[DEFAULT_EFFECT].max);
9798
};
9899

99100
const updateEffectsPreview = (imageUrl) => {

js/filters.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ const FilterType = {
1414

1515
let currentFilter = FilterType.DEFAULT;
1616
let pictures = [];
17+
let activeFilterButton = null;
1718

1819
const shuffleArray = (array) => {
1920
const shuffled = [...array];
@@ -55,14 +56,16 @@ const onFiltersFormClick = (evt) => {
5556
return;
5657
}
5758

58-
filtersForm.querySelector('.img-filters__button--active').classList.remove('img-filters__button--active');
59+
activeFilterButton.classList.remove('img-filters__button--active');
5960
target.classList.add('img-filters__button--active');
61+
activeFilterButton = target;
6062
currentFilter = target.id;
6163
onFilterChange();
6264
};
6365

6466
const initFilters = (data) => {
6567
pictures = data;
68+
activeFilterButton = filtersForm.querySelector('.img-filters__button--active');
6669
filtersElement.classList.remove('img-filters--inactive');
6770
filtersForm.addEventListener('click', onFiltersFormClick);
6871
};

js/functions.js

Lines changed: 0 additions & 82 deletions
This file was deleted.

js/messages.js

Lines changed: 25 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -4,24 +4,24 @@ const showSuccessMessage = () => {
44
const successTemplate = document.querySelector('#success').content.querySelector('.success');
55
const successElement = successTemplate.cloneNode(true);
66

7-
const closeSuccessMessage = () => {
8-
successElement.remove();
9-
document.removeEventListener('keydown', onSuccessKeydown);
10-
document.removeEventListener('click', onSuccessClick);
11-
};
12-
13-
function onSuccessKeydown(evt) {
7+
const onSuccessKeydown = (evt) => {
148
if (evt.key === 'Escape') {
159
evt.preventDefault();
16-
closeSuccessMessage();
10+
closeSuccessMessage(); // eslint-disable-line no-use-before-define
1711
}
18-
}
12+
};
1913

20-
function onSuccessClick(evt) {
14+
const onSuccessClick = (evt) => {
2115
if (!evt.target.closest('.success__inner')) {
22-
closeSuccessMessage();
16+
closeSuccessMessage(); // eslint-disable-line no-use-before-define
2317
}
24-
}
18+
};
19+
20+
const closeSuccessMessage = () => {
21+
successElement.remove();
22+
document.removeEventListener('keydown', onSuccessKeydown);
23+
document.removeEventListener('click', onSuccessClick);
24+
};
2525

2626
successElement.querySelector('.success__button').addEventListener('click', closeSuccessMessage);
2727
document.addEventListener('keydown', onSuccessKeydown);
@@ -34,25 +34,25 @@ const showErrorMessage = () => {
3434
const errorTemplate = document.querySelector('#error').content.querySelector('.error');
3535
const errorElement = errorTemplate.cloneNode(true);
3636

37-
const closeErrorMessage = () => {
38-
errorElement.remove();
39-
document.removeEventListener('keydown', onErrorKeydown);
40-
document.removeEventListener('click', onErrorClick);
41-
};
42-
43-
function onErrorKeydown(evt) {
37+
const onErrorKeydown = (evt) => {
4438
if (evt.key === 'Escape') {
4539
evt.preventDefault();
4640
evt.stopPropagation();
47-
closeErrorMessage();
41+
closeErrorMessage(); // eslint-disable-line no-use-before-define
4842
}
49-
}
43+
};
5044

51-
function onErrorClick(evt) {
45+
const onErrorClick = (evt) => {
5246
if (!evt.target.closest('.error__inner')) {
53-
closeErrorMessage();
47+
closeErrorMessage(); // eslint-disable-line no-use-before-define
5448
}
55-
}
49+
};
50+
51+
const closeErrorMessage = () => {
52+
errorElement.remove();
53+
document.removeEventListener('keydown', onErrorKeydown);
54+
document.removeEventListener('click', onErrorClick);
55+
};
5656

5757
errorElement.querySelector('.error__button').addEventListener('click', closeErrorMessage);
5858
document.addEventListener('keydown', onErrorKeydown);
@@ -71,3 +71,4 @@ const showDataError = () => {
7171
};
7272

7373
export { showSuccessMessage, showErrorMessage, showDataError };
74+

js/scale.js

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ const SCALE_MAX = 100;
99
const SCALE_DEFAULT = 100;
1010

1111
let currentScale = SCALE_DEFAULT;
12-
let isInitialized = false;
1312

1413
const updateScale = () => {
1514
scaleControlValue.value = `${currentScale}%`;
@@ -36,12 +35,9 @@ const resetScale = () => {
3635
};
3736

3837
const initScale = () => {
39-
if (isInitialized) {
40-
return;
41-
}
4238
scaleControlSmaller.addEventListener('click', onScaleSmallerClick);
4339
scaleControlBigger.addEventListener('click', onScaleBiggerClick);
44-
isInitialized = true;
40+
updateScale();
4541
};
4642

4743
export { initScale, resetScale };

js/util.js

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,21 +14,15 @@ const getRandomInteger = (a, b) => {
1414
const createRandomIdFromRangeGenerator = (min, max) => {
1515
const previousValues = [];
1616

17-
return function () {
17+
return () => {
1818
if (previousValues.length >= max - min + 1) {
1919
return null;
2020
}
2121

22-
const maxAttempts = (max - min + 1) * 2;
23-
let attempts = 0;
2422
let currentValue = getRandomInteger(min, max);
2523

2624
while (previousValues.includes(currentValue)) {
27-
if (attempts >= maxAttempts) {
28-
return null;
29-
}
3025
currentValue = getRandomInteger(min, max);
31-
attempts++;
3226
}
3327

3428
previousValues.push(currentValue);

0 commit comments

Comments
 (0)