Skip to content

Commit

Permalink
Отрисуй меня полностью (правки неймига, стрелочные функции)
Browse files Browse the repository at this point in the history
  • Loading branch information
lenapokrovskaya committed Dec 18, 2024
1 parent d3914af commit 26b8275
Show file tree
Hide file tree
Showing 6 changed files with 31 additions and 83 deletions.
1 change: 0 additions & 1 deletion index.html
Original file line number Diff line number Diff line change
Expand Up @@ -233,7 +233,6 @@ <h2 class="success__title">Изображение успешно загруже
<h2 class="data-error__title">Не удалось загрузить данные</h2>
</section>
</template>
<script src="js/functions.js"></script>
<script src="js/main.js" type="module"></script>
</body>
</html>
19 changes: 8 additions & 11 deletions js/data.js
Original file line number Diff line number Diff line change
Expand Up @@ -75,17 +75,15 @@ const randomUniqueUrl = createUniqueRandomInteger(1, POST_COUNT);
const randomUniqueСommentId = createUniqueRandomInteger(1, maxCommentsIdQuantity);

//Функция, возвращающая случайный элемент массива
const getRandomArrayElement = function (elements) {
return elements[getRandomInteger(0, elements.length - 1)];
};
const getRandomArrayElement = (elements) =>
elements[getRandomInteger(0, elements.length - 1)];

//Функция, возращающая случайное число строк для комментариев
const getRandomMessageLength = function() {
return getRandomInteger(MessageLength.MIN, MessageLength.MAX);
};
const getRandomMessageLength = () =>
getRandomInteger(MessageLength.MIN, MessageLength.MAX);

//Функция, создающая объект комментария
const createComment = function() {
const createComment = () => {
const messagesQuantity = [];
while (messagesQuantity.length < getRandomMessageLength()) {
messagesQuantity.push(getRandomArrayElement(MESSAGES));
Expand All @@ -99,7 +97,7 @@ const createComment = function() {
};

//Функция, создающая объект поста
const createPost = function() {
const createPost = () => {
//Массив объектов комментариев
const comments = Array.from({length: getRandomInteger(CommentsQuantity.MIN, CommentsQuantity.MAX)}, createComment);
return {
Expand All @@ -112,9 +110,8 @@ const createPost = function() {
};

//Функция, создающая массив объектов постов
const createPosts = function() {
return Array.from({length: POST_COUNT}, createPost);
};
const createPosts = () =>
Array.from({length: POST_COUNT}, createPost);

export {createPosts};

49 changes: 0 additions & 49 deletions js/functions.js

This file was deleted.

5 changes: 3 additions & 2 deletions js/main.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import {createPosts} from './data.js';
import {createFragmentElement} from './thumbnails.js';
import {createFragment} from './thumbnails.js';

createFragmentElement(createPosts());
const posts = createPosts();
createFragment(posts);
36 changes: 18 additions & 18 deletions js/thumbnails.js
Original file line number Diff line number Diff line change
@@ -1,28 +1,28 @@
const pictureTemplateElement = document.querySelector('#picture').content.querySelector('.picture');
const pictureContainerElement = document.querySelector('.pictures');
const pictureFragmentElement = document.createDocumentFragment();
const templateElement = document.querySelector('#picture').content.querySelector('.picture');
const containerElement = document.querySelector('.pictures');
const fragmentElement = document.createDocumentFragment();

//Функция создания перевью
const createThumbnailElement = function (picture) {
const pictureThumbnailElement = pictureTemplateElement.cloneNode(true);
const pictureImageElement = pictureThumbnailElement.querySelector('.picture__img');
pictureThumbnailElement.href = picture.url;
pictureThumbnailElement.dataset.id = picture.id;
pictureImageElement.src = picture.url;
pictureImageElement.alt = picture.description;
pictureThumbnailElement.querySelector('.picture__likes').textContent = picture.likes;
pictureThumbnailElement.querySelector('.picture__comments').textContent = picture.comments.length;
return pictureThumbnailElement;
const createThumbnail = (picture) => {
const thumbnailElement = templateElement.cloneNode(true);
const imageElement = thumbnailElement.querySelector('.picture__img');
thumbnailElement.href = picture.url;
thumbnailElement.dataset.id = picture.id;
imageElement.src = picture.url;
imageElement.alt = picture.description;
thumbnailElement.querySelector('.picture__likes').textContent = picture.likes;
thumbnailElement.querySelector('.picture__comments').textContent = picture.comments.length;
return thumbnailElement;
};

//Проходимся по массиву данных и создадим первью для каждого элемента функцией
const createFragmentElement = function (data) {
const createFragment = (data) => {
data.forEach((picture) => {
const pictureThumbnailElement = createThumbnailElement(picture);
pictureFragmentElement.appendChild(pictureThumbnailElement);
const thumbnailElement = createThumbnail(picture);
fragmentElement.appendChild(thumbnailElement);
});

pictureContainerElement.appendChild(pictureFragmentElement);
containerElement.appendChild(fragmentElement);
};

export {createFragmentElement};
export {createFragment};
4 changes: 2 additions & 2 deletions js/util.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
//Функция, возвращающая случайное число в заданном диапазоне (включительно)
const getRandomInteger = function(min, max) {
const getRandomInteger = (min, max) => {
min = Math.ceil(min);
max = Math.floor(max);
return Math.floor(Math.random() * (max - min + 1) + min);
};

//Функция, возвращающая уникальные значения из заданного диапазона
const createUniqueRandomInteger = function (min, max) {
const createUniqueRandomInteger = (min, max) => {
const previousValues = [];
return function () {
let currentValue = getRandomInteger(min, max);
Expand Down

0 comments on commit 26b8275

Please sign in to comment.