Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion index.html
Original file line number Diff line number Diff line change
Expand Up @@ -234,6 +234,6 @@ <h2 class="data-error__title">Не удалось загрузить данны
</section>
</template>
<script src="js/functions.js"></script>
<script src="js/main.js"></script>
<script type="module" src="js/main.js"></script>
</body>
</html>
35 changes: 35 additions & 0 deletions js/data.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
export const PHOTOS_COUNT = 25;
export const Likes = {
MIN: 15,
MAX: 200
};
export const CommentsCount = {
MIN: 0,
MAX: 30
};
export const Names = [
'Мария',
'Юля',
'Павел',
'Антон',
'Катя',
'Даша'
];

export const Descriptions = [
'Вид на горы',
'Горный пейзаж',
'Прогулка по лесу',
'Вид на озеро',
'Закат',
'Вечерняя прогулка'
];

export const Comments = [
'Всё отлично!',
'В целом всё неплохо. Но не всё.',
'Когда вы делаете фотографию, хорошо бы убирать палец из кадра. В конце концов это просто непрофессионально.',
'Моя бабушка случайно чихнула с фотоаппаратом в руках и у неё получилась фотография лучше.',
'Я поскользнулся на банановой кожуре и уронил фотоаппарат на кота и у меня получилась фотография лучше.',
'Лица у людей на фотке перекошены, как будто их избивают. Как можно было поймать такой неудачный момент?!'
];
73 changes: 2 additions & 71 deletions js/main.js
Original file line number Diff line number Diff line change
@@ -1,75 +1,6 @@

const PHOTOS_COUNT = 25;
const Likes = {
MIN: 15,
MAX: 200
};
const CommentsCount = {
MIN: 0,
MAX: 30
};
const Names = [
'Мария',
'Юля',
'Павел',
'Антон',
'Катя',
'Даша'
];

const Descriptions = [
'Вид на горы',
'Горный пейзаж',
'Прогулка по лесу',
'Вид на озеро',
'Закат',
'Вечерняя прогулка'
];

const Comments = [
'Всё отлично!',
'В целом всё неплохо. Но не всё.',
'Когда вы делаете фотографию, хорошо бы убирать палец из кадра. В конце концов это просто непрофессионально.',
'Моя бабушка случайно чихнула с фотоаппаратом в руках и у неё получилась фотография лучше.',
'Я поскользнулся на банановой кожуре и уронил фотоаппарат на кота и у меня получилась фотография лучше.',
'Лица у людей на фотке перекошены, как будто их избивают. Как можно было поймать такой неудачный момент?!'
];

export const getRandomNumber = (min, max) => {
const left = Math.ceil(Math.min(min, max));
const right = Math.floor(Math.max(min,max));
const random = Math.random() * (right - left + 1) + left;
return Math.floor(random);
};

const getRandomElement = (elements) => elements[getRandomNumber(0, elements.length - 1)];

let commentId = 1;

const createComment = () => ({
id: commentId++,
avatar: `img/avatar-${getRandomNumber(1, 6)}.svg`,
message: getRandomElement(Comments),
name: getRandomElement(Names),
});

const getComments = () => {
const count = getRandomNumber(CommentsCount.MIN, CommentsCount.MAX);
const comments = [];
for (let i = 1; i <= count; i++) {
comments.push(createComment())
}
return comments;
};

const getPhoto = (k) => ({
id: k,
url: `photos/${k}.jpg`,
description: getRandomElement(Descriptions),
likes: getRandomNumber(Likes.MIN, Likes.MAX),
comments: getComments()
});

const getPhotos = (count) => Array.from({ length: count }, (_, i) => getPhoto(i + 1));
import { PHOTOS_COUNT } from './data.js';
import { getPhotos } from './photos.js';

console.log(getPhotos(PHOTOS_COUNT));
30 changes: 30 additions & 0 deletions js/photos.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
import {getRandomNumber, getRandomElement} from './util.js'
let commentId = 1;

const createComment = () => ({
id: commentId++,
avatar: `img/avatar-${getRandomNumber(1, 6)}.svg`,
message: getRandomElement(Comments),
name: getRandomElement(Names),
});

const getComments = () => {
const count = getRandomNumber(CommentsCount.MIN, CommentsCount.MAX);
const comments = [];
for (let i = 1; i <= count; i++) {
comments.push(createComment())
}
return comments;
};

const getPhoto = (k) => ({
id: k,
url: `photos/${k}.jpg`,
description: getRandomElement(Descriptions),
likes: getRandomNumber(Likes.MIN, Likes.MAX),
comments: getComments()
});

export const getPhotos = (count) => Array.from({ length: count }, (_, i) => getPhoto(i + 1));

console.log(getPhotos(PHOTOS_COUNT));
8 changes: 8 additions & 0 deletions js/utils.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
export const getRandomNumber = (min, max) => {
const left = Math.ceil(Math.min(min, max));
const right = Math.floor(Math.max(min,max));
const random = Math.random() * (right - left + 1) + left;
return Math.floor(random);
};

export const getRandomElement = (elements) => elements[getRandomNumber(0, elements.length - 1)];
Loading