diff --git a/checkout/src/arquivos/js/components/Footer.js b/checkout/src/arquivos/js/components/Footer.js index 635341d..4601f8a 100644 --- a/checkout/src/arquivos/js/components/Footer.js +++ b/checkout/src/arquivos/js/components/Footer.js @@ -7,50 +7,70 @@ export default class Footer { async init() { this.list = await this.fetchApiData(); + await this.selectors(); this.cartTitle = await waitElement("#cart-title"); + console.log(this.cartTitle); + await this.cartUpdate(); this.emptyTitle = await waitElement(".empty-cart-title"); this.emptyButton = await waitElement(".link-choose-products"); + this.paymentsMethods = await waitElement(".footerCheckout__payments"); + this.certification = await waitElement(".footerCheckout__vtexpci"); + this.developedBy = await waitElement(".footerCheckout__developedBy"); this.emptyCartTitle(); this.emptyCartButton(); - await this.selectors(); + this.addPaymentsMethodsIcons(); + this.addCertificationIcon(); + this.addDevelopedByIcons(); this.events(); - this.cartUpdate(); this.items = await waitElement(".footerCheckout__prateleira-container"); console.log(this.items, "console de items"); - this.renderItems(); + await this.renderItems(); await this.addCarrossel(); } async selectors() { //Para verificar se o carrinho está vazio e remover a prateleira de produtos: // vocês devem olhar a doc fornecida no Desafio para aprender a usar o waitElement - this.checkoutVazio = await waitElement(".empty-cart-content"); - this.prateleira = await waitElement(".footerCheckout__prateleira"); + this.checkoutVazio = await waitElement(".empty-cart-content", { + timeout: 5000, + interval: 1, + }); + this.prateleira = await waitElement(".footerCheckout__prateleira", { + timeout: 5000, + interval: 1, + }); } events() { window.addEventListener("hashchange", this.outPrateleira.bind(this)); } - cartUpdate() { + async cartUpdate() { console.log("cartUpdate"); //Função que fará a verificação se o carrinho está vazio para remover a prateleira de produtos: // vocês devem olhar a doc fornecida no Desafio para aprender a usar a MutationObserver // sempre que o carrinho estiver vazio o elemento chcekoutVazio fica display: none e isso pode ser usado como atributo para a MutationObserver let target = this.checkoutVazio; + console.log("target"); let config = { childList: true, attributes: true }; - let observer = new MutationObserver((mutations) => { + console.log("config"); + let observer = await new MutationObserver((mutations) => { + console.log("observer"); mutations.map((mutation) => { const cartStatus = mutation.target.attributes.style.nodeValue; console.log(cartStatus); if (cartStatus === "display: none;") { - this.cartTitle.classList.remove("inactive"); this.renderPrateleira(); + console.log("Adiciona Prateleira"); + this.cartTitle.classList.remove("inactive"); + console.log("Adiciona Título"); } else if (cartStatus === "display: block;") { - this.cartTitle.classList.add("inactive"); this.removePrateleira(); + console.log("Remove Prateleira"); + this.cartTitle.classList.add("inactive"); + console.log("Remove Título"); } }); }); @@ -75,7 +95,7 @@ export default class Footer { }); } - renderPrateleira() { + async renderPrateleira() { let itemsStructure = `