1
resposta

[Bug] Dificuldade no fechando o formulário ao cancelar

Olá caros amigos devs,

rogo por auxilio neste dilema codificado de habilitar o botão cancelar no projeto fokus, ao se abrir o textarea para uma nova tarefa no projeto.

o curso propôs utilizar o seguinte codigo para funcionar, ` const btnCancelar = document.querySelector('.app__form-footer__button--cancel');

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

btnCancelar.addEventListener('click', limparFormulario);`

todavia insiro no projeto e nada funciona como o esperado, veja: (inseri uma seta nas partes do botão cancelar: <---------------------)

const btnAdicionarTarefa = document.querySelector('.app__button--add-task')
const btnCancelar = document.querySelector('.app__form-footer__button--cancel'); // <---------------------
const formAdicionarTarefa = document.querySelector('.app__form-add-task')
const textarea = document.querySelector('.app__form-textarea')
const ulTarefas = document.querySelector('.app__section-task-list')
const paragrafoDescriçãoTarefa = document.querySelector('.app__section-active-task-description')


const btnRemoverConcluidas = document.querySelector('#btn-remover-concluidas')
const btnRemoverTodas = document.querySelector('#btn-remover-todas')

let tarefas = JSON.parse(localStorage.getItem('tarefas')) || []
let tarefaSelecionada = null
let liTarefaSelecionada = null

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

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 = () => {
        const novaDescricao = prompt("Qual é o novo nome da tarefa?")
        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)

    if (tarefa.completa) {
        li.classList.add('app__section-task-list-item-complete')
        botao.setAttribute('disabled', 'disabled')
    } else {
        li.onclick = () => {
            document.querySelectorAll('.app__section-task-list-item-active')
                .forEach(elemento => {
                    elemento.classList.remove('app__section-task-list-item-active')
                })
            if (tarefaSelecionada == tarefa) {
                paragrafoDescriçãoTarefa.textContent = ''
                tarefaSelecionada = null
                liTarefaSelecionada = null
                return
            }
            tarefaSelecionada = tarefa
            liTarefaSelecionada = li
            paragrafoDescriçãoTarefa.textContent = tarefa.descricao
            
            li.classList.add('app__section-task-list-item-active')
        }
    }

    return li
}

const limparFormulario = () => {  // <---------------------
    textarea.value = ''; 
    formularioTarefa.classList.add('hidden');  
}

btnCancelar.addEventListener('click', limparFormulario); // <---------------------

btnAdicionarTarefa.addEventListener('click', () => {
    formAdicionarTarefa.classList.toggle('hidden')
})

//... continuação do codigo
1 resposta

Olá, bom dia! Me parece que esse formularioTarefa que você marcou está incorreto, pois não encontrei no código onde você declarou essa variável. Você colocou assim:

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

Acredito que o correto seria:

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