add logic for habit done
This commit is contained in:
34
app.js
34
app.js
@@ -22,11 +22,28 @@ const HabitTrackerApp = {
|
|||||||
this.elements.addHabbitButton.addEventListener('click', () => {
|
this.elements.addHabbitButton.addEventListener('click', () => {
|
||||||
//this.elements.addHabitForm.style.display = 'block';
|
//this.elements.addHabitForm.style.display = 'block';
|
||||||
});
|
});
|
||||||
this.elements.habbitDoneButtons.forEach(
|
|
||||||
button => button.addEventListener('click',
|
// 2 вариант
|
||||||
() => console.log('Привычка выполнена')
|
const timerId = setInterval(() => {
|
||||||
)
|
if (this.elements.habbitDoneButtons.length == 0) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
this.elements.habbitDoneButtons.forEach(
|
||||||
|
button => {
|
||||||
|
return button.addEventListener('click', (event) => {
|
||||||
|
const cardId = event.target.closest('.habit-card').dataset.habitId;
|
||||||
|
// разобраться почему не находит привычку
|
||||||
|
HabitManager.markHabitDone(cardId);
|
||||||
|
HabitManager.saveToLocalStorage();
|
||||||
|
this.init();
|
||||||
|
});
|
||||||
|
}
|
||||||
);
|
);
|
||||||
|
}, 1000);
|
||||||
|
|
||||||
|
setTimeout(() => clearInterval(timerId), 3000);
|
||||||
|
|
||||||
// пройти циклом по habbitDoneButtons. На каждый элемент массива
|
// пройти циклом по habbitDoneButtons. На каждый элемент массива
|
||||||
// добавить addEventListener по клику.
|
// добавить addEventListener по клику.
|
||||||
// и в обработчике события вывести console.log
|
// и в обработчике события вывести console.log
|
||||||
@@ -36,7 +53,10 @@ const HabitTrackerApp = {
|
|||||||
this.elements.habitGrid = document.getElementById('habits-grid');
|
this.elements.habitGrid = document.getElementById('habits-grid');
|
||||||
this.elements.addHabitForm = document.getElementById('add-habit-form');
|
this.elements.addHabitForm = document.getElementById('add-habit-form');
|
||||||
this.elements.addHabbitButton = document.getElementById('add-habbit-button');
|
this.elements.addHabbitButton = document.getElementById('add-habbit-button');
|
||||||
this.elements.habbitDoneButtons = document.getElementsByClassName('button-primary');
|
setTimeout(() => {
|
||||||
|
this.elements.habbitDoneButtons = document.querySelectorAll('.button--primary');
|
||||||
|
}, 1000);
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
render: function() {
|
render: function() {
|
||||||
@@ -79,7 +99,9 @@ HabitTrackerApp.loadFromLocalStorage = function() {
|
|||||||
|
|
||||||
if (HabitManager.habits.length == 0) {
|
if (HabitManager.habits.length == 0) {
|
||||||
HabitManager.createHabit('Учить js', 'Писать не менее 1000000000 строк кода в день', 8);
|
HabitManager.createHabit('Учить js', 'Писать не менее 1000000000 строк кода в день', 8);
|
||||||
}
|
HabitManager.saveToLocalStorage();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
document.addEventListener('DOMContentLoaded', () => {
|
document.addEventListener('DOMContentLoaded', () => {
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ const HabitManager = {
|
|||||||
|
|
||||||
HabitManager.createHabit = function (name, description, targetCount = 1) {
|
HabitManager.createHabit = function (name, description, targetCount = 1) {
|
||||||
const habit = {
|
const habit = {
|
||||||
id: Math.random(),
|
id: Math.floor(Math.random() * 100000, 10000),
|
||||||
name: name,
|
name: name,
|
||||||
description: description,
|
description: description,
|
||||||
targetCount: targetCount,
|
targetCount: targetCount,
|
||||||
@@ -31,6 +31,7 @@ HabitManager.createHabit = function (name, description, targetCount = 1) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
HabitManager.markHabitDone = function (habitId) {
|
HabitManager.markHabitDone = function (habitId) {
|
||||||
|
console.log(this.habits);
|
||||||
const habit = this.habits.find(h => h.id === habitId);
|
const habit = this.habits.find(h => h.id === habitId);
|
||||||
|
|
||||||
if (!habit) {
|
if (!habit) {
|
||||||
|
|||||||
Reference in New Issue
Block a user