Achei que foram instroduzidos muitos conceitos nesta aula para o qual não estamos preparados, não estou conseguindo fazer nenhum desafio sozinho.
Estou seguindo toda a trilha recomendada de conhecimento, fiz todos os pré-requisitos solicitados pelo cursos, e mesmo assim não consegui acompanhar.
O uso do LocalStorage em si consegui entender bem:
Segue os que não consegui entender muito bem até aqui:
1 - sobre a criação destas variáveis com Let que estão sendo inicializadas com null.
let tarefaSelecionada = null;
let itemTarefaSelecionada = null;
let tarefaEmEdicao = null;
let paragraphEmEdicao = null;
2 - As arrow functions com parâmetros seguidos do for each (esta função toda praticamente nã o entendi nada:
const selecionaTarefa = (tarefa, elemento) => {
document.querySelectorAll('.app__section-task-list-item-active').forEach(function (button) {
button.classList.remove('app__section-task-list-item-active')
})
if (tarefaSelecionada == tarefa) {
taskAtiveDescription.textContent = null;
itemTarefaSelecionada = null;
tarefaSelecionada = null;
return
}
tarefaSelecionada = tarefa;
itemTarefaSelecionada = elemento;
taskAtiveDescription.textContent = tarefa.descricao
elemento.classList.add("app__section-task-list-item-active")
}
Sobre a Classe hidden, porque ela some com o campo?
const limparForm = () => {
textArea.value = "";
formTask.classList.add("hidden");
}
Toda a função para criar tarefa usando li, o createElement, o event.stopPropagation, alguns setAttribute que foram usado de mais explicações (como o disable por exemplo) acho que deveria ser estudado com mais detalhes para realmente aprendermos.
function createTask (tarefa) {
const li = document.createElement("li");
li.classList.add("app__section-task-list-item")
const svgIcon = document.createElement("svg");
svgIcon.innerHTML = taskIconSvg;
const paragraph = document.createElement("p");
paragraph.classList.add("app__section-task-list-item-description");
paragraph.textContent = tarefa.descricao
const button = document.createElement("button");
button.classList.add("app__button-edit");
const editIcon = document.createElement('img')
editIcon.setAttribute('src', '/imagens/edit.png')
li.onclick = () => {
selecionaTarefa(tarefa, li)
}
svgIcon.addEventListener("click", (event) => {
event.stopPropagation();
button.setAttribute("disable", true);
li.classList.add("app__section-task-list-item-complete");
})
if (tarefa.concluida) {
button.setAttribute("disable", true)
li.classList.add("app__section-task-list-item-complete")
}
li.appendChild(svgIcon);
li.appendChild(paragraph);
li.appendChild(button);
button.appendChild(editIcon)
return li;
}
O appendChild também poderia ser abordado de uma forma mais didática. Enfim. Se tiver algum curso de aprofundando nestes temas, me passem por favor.