Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Icone não aparecendo

Eu estou tentando adicionar o botão de editar, porem não estou conseguindo, o código esta igual ao do instrutor, e simplesmente não aparece

Codigo do ui.js

import api from "./api.js"

const ui = {
    async renderizarPensamentos(){
        const listaPensamentos = document.getElementById("lista-pensamentos")
    
        try{
            const pensamentos = await api.buscaPensamento()

            pensamentos.forEach(pensamento => {
                listaPensamentos.innerHTML += `
                <li class="li-pensamento" data-id="${pensamento.id}">
                    <img src="assets/imagens/aspas-azuis.png" alt="Aspas azuis" class="icone-aspas">
                    <div class="pensamento-conteudo">${pensamento.conteudo}</div>
                    <div class="pensamento-autoria">${pensamento.autoria}</div>
                </li>`
            });

        } catch{
            alert("Erro ao renderizar pensamentos")
        }
    },

    adicionarPensamentos(){
        const listaPensamentos = document.getElementById("lista-pensamentos")
        const li = document.createElement('li')
        li.setAttribute('data-id', pensamento.id)
        li.classList.add("li-pensamento")

        const iconeAspas = document.createElement("img")
        iconeAspas.src = "assets/imagens/aspas-azuis.png"
        iconeAspas.alt = "Aspas Azuis"
        iconeAspas.classList.add("icone-aspas")

        const pensamentoConteudo = document.createElement("div")
        pensamentoConteudo.textContent = pensamento.conteudo
        pensamentoConteudo.classList.add("pensamento-conteudo")

        const pensamentoAutoria = document.createElement("div")
        pensamentoAutoria.textContent = pensamento.autoria
        pensamentoAutoria.classList.add("pensamento-autoria")

        const botaoEditar = document.createElement("button")
        botaoEditar.classList.add("botao-editar")
        botaoEditar.onclick = () => ui.preencherFormulario(pensamento.id)

        const iconeEdit = document.createElement('img')
        iconeEdit.src = "assets/imagens/icone-editar.png"
        iconeEdit.al = "Editar"
        botaoEditar.appendChild(iconeEdit)

        const icones = document.createElement("div")
        icones.classList.add("icones")
        icones.appendChild(botaoEditar)

        li.append(iconeAspas)
        li.append(pensamentoConteudo)
        li.append(pensamentoAutoria)
        li.append(icones)

        listaPensamentos.appendChild(li)
    },

    limparPensamento(){
        document.getElementById('pensamento-form').reset();
    },

    async preencherFormulario(pensamentoId){
        const pensamento = await document.getElementById(pensamentoId)
        
        document.getElementById('pensamento-id').value = pensamento.id
        document.getElementById('pensamento-conteudo').value = pensamento.conteudo
        document.getElementById('pensamento-autoria').value = pensamento.autoria
   
    }
}

export default ui;
1 resposta
solução!

Olá, João, como vai?

Notei alguns pontos que podem estar causando o problema. Vamos conferir:

  1. Atributo alt incorreto: no seu código o atributo alt está escrito como al. A correção é simples:

    const iconeEdit = document.createElement('img')
    iconeEdit.src = "assets/imagens/icone-editar.png"
    iconeEdit.alt = "Editar" // Corrigir aqui
    botaoEditar.appendChild(iconeEdit)
    
  2. Função preencherFormulario: Na sua função, você está buscando o pensamento diretamente do DOM com document.getElementById(pensamentoId), mas deveria usar a API para buscar o pensamento por ID. A forma correta seria:

    const pensamento = await api.buscarPensamentoPorId(pensamentoId)
    
  3. Renderização dos pensamentos: Na sua função renderizarPensamentos, ao invés de manipular diretamente o DOM com innerHTML +=, seria melhor seguir o padrão da instrutora e criar uma função específica para adicionar cada pensamento à lista. Isso deixa o código mais organizado:

    pensamentos.forEach(ui.adicionarPensamentoNaLista)
    

Com essas correções, o botão de editar e o ícone deverão aparecer como esperado. Se precisar de mais ajuda, estamos à disposição no fórum!

Um abraço e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!