Skip to content

Commit b2cb8b0

Browse files
Merge pull request #4 from AlenaBeloglazova/module5-task1
Модуляция
2 parents 2ef9d10 + a023ce5 commit b2cb8b0

File tree

5 files changed

+76
-67
lines changed

5 files changed

+76
-67
lines changed

index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -234,6 +234,6 @@ <h2 class="data-error__title">Не удалось загрузить данны
234234
</section>
235235
</template>
236236
<script src="./js/functions.js"></script>
237-
<script src="./js/main.js"></script>
237+
<script src="./js/main.js" type="module"></script>
238238
</body>
239239
</html>

js/const.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
export const MESSAGES = ['Всё отлично!', 'В целом всё неплохо. Но не всё.', 'Когда вы делаете фотографию, хорошо бы убирать палец из кадра. В конце концов это просто непрофессионально.',
2+
'Моя бабушка случайно чихнула с фотоаппаратом в руках и у неё получилась фотография лучше.', 'Я поскользнулся на банановой кожуре и уронил фотоаппарат на кота и у меня получилась фотография лучше.',
3+
'Лица у людей на фотке перекошены, как будто их избивают. Как можно было поймать такой неудачный момент?!'];
4+
5+
export const NAMES = ['Сергей', 'Иван', 'Дмитрий', 'Роман', 'Александр', 'Виктория', 'Ольга', 'Светлана', 'Михаил', 'Анастасия', 'Валентина', 'Петр', 'Виктор',];
6+
export const MIN_LIKES = 15;
7+
export const MAX_LIKES = 200;
8+
export const POSTS_COUNT = 25;
9+
export const MIN_COMMENTS = 0;
10+
export const MAX_COMMENTS = 30;
11+
12+

js/data.js

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
import {getUniqueId, getRandomInteger} from './util.js';
2+
import {MESSAGES, NAMES, MIN_LIKES, MAX_LIKES, POSTS_COUNT, MIN_COMMENTS, MAX_COMMENTS} from './const.js';
3+
4+
const createComments = (createPostCommentIdGenerator) => {
5+
const randomMessageIndex = getRandomInteger(0, MESSAGES.length - 1);
6+
const randomNameIndex = getRandomInteger(0, NAMES.length - 1);
7+
const avatarId = getRandomInteger(1, 6);
8+
9+
return {
10+
id: createPostCommentIdGenerator(),
11+
avatar: `img/avatar-${ avatarId }.svg`,
12+
message: MESSAGES[randomMessageIndex],
13+
name: NAMES[randomNameIndex],
14+
};
15+
};
16+
17+
18+
const createPhoto = () => {
19+
const id = getUniqueId();
20+
const commentCount = getRandomInteger (MIN_COMMENTS, MAX_COMMENTS);
21+
22+
const createPostCommentIdGenerator = (() => {
23+
let commentId = 0;
24+
return () => ++commentId;
25+
})();
26+
27+
const similarComments = Array.from({length: commentCount}, () => createComments(createPostCommentIdGenerator));
28+
29+
return {
30+
id: id,
31+
url: `photos/${ id }.jpg`,
32+
description: `Фотография №${ id }`,
33+
likes: getRandomInteger(MIN_LIKES, MAX_LIKES),
34+
comments: similarComments,
35+
};
36+
};
37+
38+
const similarPhotos = Array.from({length: POSTS_COUNT}, createPhoto);
39+
40+
export {similarPhotos};

js/main.js

Lines changed: 1 addition & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -1,69 +1,4 @@
1-
const MESSAGE = ['Всё отлично!', 'В целом всё неплохо. Но не всё.', 'Когда вы делаете фотографию, хорошо бы убирать палец из кадра. В конце концов это просто непрофессионально.',
2-
'Моя бабушка случайно чихнула с фотоаппаратом в руках и у неё получилась фотография лучше.', 'Я поскользнулся на банановой кожуре и уронил фотоаппарат на кота и у меня получилась фотография лучше.',
3-
'Лица у людей на фотке перекошены, как будто их избивают. Как можно было поймать такой неудачный момент?!'];
41

5-
const NAMES = ['Сергей', 'Иван', 'Дмитрий', 'Роман', 'Александр', 'Виктория', 'Ольга', 'Светлана', 'Михаил', 'Анастасия', 'Валентина', 'Петр', 'Виктор',];
6-
const MIN_LIKES = 15;
7-
const MAX_LIKES = 200;
8-
const POSTS_COUNT = 25;
9-
const MIN_COMMENTS = 0;
10-
const MAX_COMMENTS = 30;
11-
12-
const getRandomInteger = (a, b) => {
13-
const lower = Math.ceil(Math.min(a, b));
14-
const upper = Math.floor(Math.max(a, b));
15-
const result = Math.random() * (upper - lower + 1) + lower;
16-
return Math.floor(result);
17-
};
18-
19-
const getUniqueId = (() => {
20-
const used = [];
21-
return () => {
22-
let num;
23-
num = getRandomInteger(1, 25);
24-
while (used.includes(num)) {
25-
num = getRandomInteger(1, 25);
26-
}
27-
used.push(num);
28-
return num;
29-
};
30-
})();
31-
32-
33-
const createComments = (createPostCommentIdGenerator) => {
34-
const randomMessageIndex = getRandomInteger(0, MESSAGE.length - 1);
35-
const randomNameIndex = getRandomInteger(0, NAMES.length - 1);
36-
const avatarId = getRandomInteger(1, 6);
37-
38-
return {
39-
id: createPostCommentIdGenerator(),
40-
avatar: `img/avatar-${ avatarId }.svg`,
41-
message: MESSAGE[randomMessageIndex],
42-
name: NAMES[randomNameIndex],
43-
};
44-
};
45-
46-
47-
const createPhoto = () => {
48-
const id = getUniqueId();
49-
const commentCount = getRandomInteger (MIN_COMMENTS, MAX_COMMENTS);
50-
51-
const createPostCommentIdGenerator = (() => {
52-
let commentId = 0;
53-
return () => ++commentId;
54-
})();
55-
56-
const similarComments = Array.from({length: commentCount}, () => createComments(createPostCommentIdGenerator));
57-
58-
return {
59-
id: id,
60-
url: `photos/${ id }.jpg`,
61-
description: `Фотография №${ id }`,
62-
likes: getRandomInteger(MIN_LIKES, MAX_LIKES),
63-
comments: similarComments,
64-
};
65-
};
66-
67-
const similarPhotos = Array.from({length: POSTS_COUNT}, createPhoto);
2+
import {similarPhotos} from './data.js';
683

694
console.dir(similarPhotos, { depth: null });

js/util.js

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
const getRandomInteger = (a, b) => {
2+
const lower = Math.ceil(Math.min(a, b));
3+
const upper = Math.floor(Math.max(a, b));
4+
const result = Math.random() * (upper - lower + 1) + lower;
5+
return Math.floor(result);
6+
};
7+
8+
const getUniqueId = (() => {
9+
const used = [];
10+
return () => {
11+
let num;
12+
num = getRandomInteger(1, 25);
13+
while (used.includes(num)) {
14+
num = getRandomInteger(1, 25);
15+
}
16+
used.push(num);
17+
return num;
18+
};
19+
})();
20+
21+
export {getRandomInteger};
22+
export{getUniqueId};

0 commit comments

Comments
 (0)