Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] O que estou errando?

Onde que está meu erro na atividade de fechar o formulário apertando cancelar ???

const btnFormTask = document.querySelector('.app__button--add-task');
const btnCancelarTask = document.querySelector('.app__form-footer__button--cancel');
const adicionarTask = document.querySelector('.app__form-add-task');
const textAreaTask = document.querySelector('.app__form-textarea');
const ulTarefas = document.querySelector('.app__section-task-list')


const tarefas = JSON.parse(localStorage.getItem('tarefas')) || []

function atualizarTarefas(){
    localStorage.setItem('tarefas', JSON.stringify(tarefas))
}


btnFormTask.addEventListener('click' , ()=>{
    adicionarTask.classList.toggle('hidden')
})

function criarElementoTarefa(tarefa){
    const li = document.createElement('li')
    li.classList.add('app__section-task-list-item')

    const svg = document.createElement('svg');

    svg.innerHTML=` 
    
    <svg class="app__section-task-icon-status" width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
    <circle cx="12" cy="12" r="12" fill="#FFF"></circle>
    <path d="M9 16.1719L19.5938 5.57812L21 6.98438L9 18.9844L3.42188 13.4062L4.82812 12L9 16.1719Z" fill="#01080E"></path>
    </svg>

    `

    const paragrafo = document.createElement('p')
    paragrafo.textContent = tarefa.descricao
    paragrafo.classList.add('app__section-task-list-item-description')

    const botao = document.createElement('button');
    botao.classList.add('app_button-edit')

    botao.onclick = ()  =>{
        debugger
        const novaDescricao = prompt("Qual é a nova tarefa?")
        console.log('Nova descrição da tarefa', novaDescricao)
        if(novaDescricao){
            paragrafo.textContent = novaDescricao
            tarefa.descricao = novaDescricao
            atualizarTarefas()

        }
    }
    
    
    
    const imagemBotao = document.createElement('img');
    imagemBotao.setAttribute('src','/imagens/edit.png');
    botao.append(imagemBotao);
    
    li.append(svg);
    li.append(paragrafo);
    li.append(botao);
    
    return li
}

const limparFormulario = () =>{
    textarea.value = ''
    adicionarTask.classList.add('hidden')
    
}

btnCancelarTask.addEventListener('click', limparFormulario)

adicionarTask.addEventListener('submit', (evento)=>{
    evento.preventDefault();
    // const decricaotarefa = textAreaTask.value;
    const tarefa ={
        descricao: textAreaTask.value
        

    }

    tarefas.push(tarefa)
    const elementoTarefa = criarElementoTarefa(tarefa);
    ulTarefas.append(elementoTarefa)
    atualizarTarefas()
    textarea.value = '';
    adicionarTask.classList.add('hidden')
})

tarefas.forEach(tarefa => {
    const elementoTarefa = criarElementoTarefa(tarefa)
    ulTarefas.append(elementoTarefa)
})
2 respostas

Consegui achar o ''erro'' eu removi o ''.value'' e simplesmente rodou, na resolução fala que deve por mas só funcionou quando eu tirei. O que pode ter sido ou se tem erro ainda qual que é?

solução!

Parece que há um pequeno erro de digitação no código. Na função limparFormulario, você está tentando acessar textarea, mas o elemento correto é textAreaTask. Aqui está a correção:

const limparFormulario = () =>{
    textAreaTask.value = ''  // Corrigido de 'textarea' para 'textAreaTask'
    adicionarTask.classList.add('hidden')
}

Com essa correção, ao clicar no botão de cancelar (btnCancelarTask), a função limparFormulario deverá funcionar corretamente e limpar o conteúdo do campo de texto (textAreaTask) e ocultar o formulário (adicionarTask).