-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrenderTasks.js
More file actions
49 lines (42 loc) · 2.37 KB
/
renderTasks.js
File metadata and controls
49 lines (42 loc) · 2.37 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
import { formatDateToRu, formatDateToUs } from "./lib/formatDate/formatDate.js"
const listElement = document.getElementById("list");
// Функция formatDate будет принимать на вход дату и преобразовывать ее к виду
// ДД/ММ/ГГГГ ЧЧ:ММ, если число меньше 10, то перед числом ставим 0.
// Сама функция реализована довольно просто, мы возвращаем строку, где для
// дня, месяца, года, часа и минуты вызываем соответствующие методы встроенного
// объекта Date, при этом с помощью тернарного оператора проверяем получаемое число
// для дня, месяца, часа и минуты, если число меньше 10, то перед числом ставим 0
const formatDate = (date) => {
return `${date.getDate() < 10 ? '0' + date.getDate() : date.getDate()}/
${date.getMonth() < 10 ? '0' + date.getMonth() : date.getMonth()}/
${date.getFullYear()} ${date.getHours() < 10 ? '0' + date.getHours() : date.getHours()}:
${date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()}`;
}
export const renderTasks = ({ tasks, fetchAndRenderTasks }) => {
const country = "ru";
const tasksHtml = tasks
.map((task) => {
return `
<li class="task">
<p class="task-text">
${task.text} (Создал: ${task.user?.name ?? "Неизвестно"})
<button data-id="${
task.id
}" class="button delete-button">Удалить</button>
</p>
<p><i>Задача создана: ${country === "ru" ? formatDateToRu(new Date(task.created_at)) : formatDateToUs(new Date(task.created_at))}</i></p>
</li>`;
})
.join("");
listElement.innerHTML = tasksHtml;
const deleteButtons = document.querySelectorAll(".delete-button");
for (const deleteButton of deleteButtons) {
deleteButton.addEventListener("click", (event) => {
event.stopPropagation();
const id = deleteButton.dataset.id;
deleteTodo({ id }).then(() => {
fetchAndRenderTasks();
});
});
}
};