Skip to content

Commit

Permalink
Merge pull request #4 from brazilets/module5-task1
Browse files Browse the repository at this point in the history
Модуляция
  • Loading branch information
Lizunchik authored Feb 29, 2024
2 parents 733191b + 32173d8 commit 18563f4
Show file tree
Hide file tree
Showing 5 changed files with 69 additions and 62 deletions.
3 changes: 1 addition & 2 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -239,8 +239,7 @@ <h2 class="success__title">Изображение успешно загруже
<h2 class="data-error__title">Не удалось загрузить данные</h2>
</section>
</template>
<script src="js/main.js"></script>
<script src="js/functions.js"></script>
<script src="js/main.js" type="module"></script>
</body>

</html>
55 changes: 55 additions & 0 deletions js/data.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
import {getRandomInteger, getRandomArrayElement} from './util.js';

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

const NAMES = ['Мария', 'Дмитрий', 'Евгений', 'Елена', 'Александр', 'Алексей', 'Ирина', 'Иван', 'Оксана', 'Валентина', 'Дарья', 'Олег', 'Виктор'];

const DESCRIPTIONS = ['Супер', 'Круто', 'Пойдёт', 'Не очень', 'Так себе', 'Хорошо', 'Нормально', 'Могло быть и лучше', 'Огонь'];

const LIKES = {
MIN: 15,
MAX: 200,
};

const COMMENTS = {
MIN: 0,
MAX: 30,
};

const AVATARS = {
MIN: 1,
MAX: 6,
};

const CREATE_POST = 25;

const createCount = () => {
let count = 0;
return function () {
count += 1;
return count;
};
};

const getCommentId = createCount();
const getId = createCount();
const getUrlPhoto = createCount();

const getObjectComments = () => ({
id: getCommentId(),
avatar: `img/avatar-${getRandomInteger(AVATARS.MIN, AVATARS.MAX)}.svg`,
message: getRandomArrayElement(MESSAGES),
name: getRandomArrayElement(NAMES),
});

const createPost = () => ({
id: getId(),
url: `img/avatar-${getUrlPhoto()}.svg`,
likes: getRandomInteger(LIKES.MIN, LIKES.MAX),
comments: Array.from({length: getRandomInteger(COMMENTS.MIN, COMMENTS.MAX)}, getObjectComments),
description: getRandomArrayElement(DESCRIPTIONS),
});

const createPosts = () => Array.from({length: CREATE_POST}, createPost);

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

const NAMES = ['Мария', 'Дмитрий', 'Евгений', 'Елена', 'Александр', 'Алексей', 'Ирина', 'Иван', 'Оксана', 'Валентина', 'Дарья', 'Олег', 'Виктор'];

const DESCRIPTIONS = ['Супер', 'Круто', 'Пойдёт', 'Не очень', 'Так себе', 'Хорошо', 'Нормально', 'Могло быть и лучше', 'Огонь'];

const LIKES = {
MIN: 15,
MAX: 200,
};

const COMMENTS = {
MIN: 0,
MAX: 30,
};

const AVATARS = {
MIN: 1,
MAX: 6,
};

const CREATE_POST = 25;

const getRandomInteger = (a, b) => {
const lower = Math.ceil(Math.min(a, b));
const upper = Math.floor(Math.max(a, b));
const result = Math.random() * (upper - lower + 1) + lower;
return Math.floor(result);
};

const createCount = () => {
let count = 0;
return function () {
count += 1;
return count;
};
};

const getRandomArrayElement = (elements) => elements[getRandomInteger(0, elements.length - 1)];

const getCommentId = createCount();
const getId = createCount();
const getUrlPhoto = createCount();

const getObjectComments = () => ({
id: getCommentId(),
avatar: `img/avatar-${getRandomInteger(AVATARS.MIN, AVATARS.MAX)}.svg`,
message: getRandomArrayElement(MESSAGES),
name: getRandomArrayElement(NAMES),
});

const createPost = () => ({
id: getId(),
url: `img/avatar-${getUrlPhoto()}.svg`,
likes: getRandomInteger(LIKES.MIN, LIKES.MAX),
comments: Array.from({length: getRandomInteger(COMMENTS.MIN, COMMENTS.MAX)}, getObjectComments),
description: getRandomArrayElement(DESCRIPTIONS),
});

const posts = Array.from({length: CREATE_POST}, createPost);
posts.values();
createPosts();

10 changes: 10 additions & 0 deletions js/util.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
const getRandomInteger = (a, b) => {
const lower = Math.ceil(Math.min(a, b));
const upper = Math.floor(Math.max(a, b));
const result = Math.random() * (upper - lower + 1) + lower;
return Math.floor(result);
};

const getRandomArrayElement = (elements) => elements[getRandomInteger(0, elements.length - 1)];

export {getRandomInteger, getRandomArrayElement};
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
{
"name": "kekstagram",
"type": "module",
"version": "30.0.0",
"private": true,
"description": "Личный проект «Кекстаграм» от HTML Academy",
Expand Down

0 comments on commit 18563f4

Please sign in to comment.